- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正尝试在虚拟内存被 ulimit -v 2000000
限制为 2GB 的环境中使用 java,但出现内存错误。在此环境中运行 java -version
会得到:
$ java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
无论我将 -Xmx
设置得多么低,我都无法让 java 在此环境下运行。但是,如果 ulimit -v
设置为 2.5GB,那么我可以将 -Xmx
设置为 250m,但不能更高。
$ java -Xmx250m -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
$ java -Xmx251m -version
#
# There is insufficient memory for the Java Runtime Environment to continue.
# pthread_getattr_np
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)# An error report file with more information is saved as:
# ~/hs_err_pid12079.log
是否可以在使用ulimit限制虚拟内存的环境下使用java?
最佳答案
这是所有可用 JVM(oracle 或 openjdk,版本 6、7、8)中众所周知的巨大错误。在这里报道: https://bugs.launchpad.net/ubuntu/+source/openjdk-7/+bug/1241926 https://bugs.openjdk.java.net/browse/JDK-8071445
不幸的是,Java 开发人员没有解决方案。解决方案:拼命使用各种 java 选项或停止使用 java 和基于 java 的应用程序:-(
关于Java和虚拟内存ulimit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910468/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我有一个问题,我需要从 java/groovy 程序中找出 linux 进程的硬和软打开文件限制。当我从终端执行 ulimit 时,它会为硬打开文件限制和软打开文件限制提供单独的值。 $ ulimit
这是输出。 core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling
操作系统是Centos 7 , 我正在使用 Test Kitchen 1.13.2和 centos-7.2默认 Vagrant 框。 我需要 nproc 超过一个用户的特定限制,为此我修改了 /etc
全部 我想将核心文件大小永久设置为无限制。 阅读它,建议是修改/etc/security/limits.conf。 我已经使用以下行这样做了: 软核10000 根硬核 10000 更改后我重新启动并发
我已阅读 here docker 容器从主机继承 ulimit 属性。我的容器似乎没有发生这种情况。特别是,我需要从主机继承 max locked memory 属性。有谁知道如何修复它? ubunt
我试图在 this question 上帮助 OP . 我发现即使堆栈设置为 2000 KB,像下面这样的代码也会随机导致段错误。 int main () { int a[510000];
我正在研究堆栈内存,我正在尝试增加软限制。我发现这样做的命令是: 显示堆栈大小(以 KB 为单位): ulimit -s 我可以使用以下方法改变它: ulimit -s value 操作系统还设置了硬
root用户运行以下 ulimit -a | grep open 并得到结果 open files (-n) 65536 用户运行相同的命令并得到结果 open files (-n) 65000 如何
我想永久设置ulimit -m(最大内存大小)和ulimit -v(虚拟内存)。服务器重新启动后,它们不应更改。我尝试编辑/etc/security/limits.conf,但是服务器重新启动后它们仍
我在虚拟机上运行 Linux 操作系统 (Ubuntu)。当我运行命令时 ulimit -Sv 50 它没有在该 bash session 中设置虚拟内存大小的软限制。我收到的错误是: fatal e
我不知道如何以正确的方式从我的计算机中删除所有限制,所以我做了一个小命令: sudo su ulimit -a 9999999 ulimit -b 9999999 ulimit -c 9999999
试图限制核心转储文件的大小。我想限制在4MB左右,所以我设置为1000( block ,每个 block 4KB)。但它不限制核心转储文件的大小。有任何想法吗? $ ulimit -c 1000 $
我有一个 hadoop 集群,我们假设它的性能非常“糟糕”。节点非常强大.. 24 个内核,60+G RAM ..等。我们想知道是否有一些基本的 linux/hadoop 默认配置阻止 hadoop
通过反复试验,我发现我可以给 ulimit -Hn 而不会出错的最大数字是 1048576。这个数字从何而来?我的 sys.fs.file-max 是 20000500(2000 万)。 最佳答案 实
有人知道在 Linux 中为另一个用户查找“ulimit -a”值的方法吗?我希望用户 A 能够检查用户 B 的 ulimit 值。假设用户 A 和用户 B 是非根用户。 提前致谢 最佳答案 我建议:
在我正在处理的项目中,xdebug 需要大约 1 小时才能生成覆盖率。我已经尝试过 phpdbg,但在我的测试套件中遇到以下错误: stream_select(): You MUST recompil
这是尝试启动 apache2 的日志: * Starting web server apache2
如 normaluser : $ ulimit -n 4096 -bash: ulimit: open files: cannot modify limit: Operation not permit
我正在使用 tomcat 7 和 java 1.7 的 debian 服务器上工作。这是一个接收多个 TCP 连接的应用程序,每个 TCP 连接都是一个由 java 进程打开的文件。 看着 /proc
我是一名优秀的程序员,十分优秀!