use*_*929 16 java memory-management gentoo heap-memory
我正在使用512GB RAM(由几个AMD Opteron 6212 CPU寻址)的单台机器上工作.目前大约有300GB RAM免费.通过运行运行大型Java计算
java path/to/myApp -Xms280g -Xmx280g > output.txt
Run Code Online (Sandbox Code Playgroud)
应该使Java立即保留280GB,如果失败则会出错.奇怪的是,没有发生错误,但top
只显示30.4GB的内存使用量,但它不会崩溃.怎么会发生这种情况?如果无法分配初始堆大小,是不是java应该崩溃?
实际上,一旦30.4GB已满,我就会在达到280GB之前获得OutOfMemory/Java堆空间/ GC开销限制错误.使用250GB或300GB运行会产生类似的30.3GB~30.4GB限制.我在Gentoo Linux上运行带有OpenJDK运行时环境(IcedTea6)的OpenJDK 64位服务器VM,并且有足够的可用RAM(超过300GB).
Die*_*gio 14
参数的顺序不正确.您将-Xms280g -Xmx280g
作为参数传递给您自己的程序而不是JVM.正确的是:
java -Xms280g -Xmx280g path/to/myApp