我在一台有512 by (由几个AMD Opteron 6212 CPU寻址)的机器上工作。目前大约有300 is的空闲内存。通过运行以下命令运行大型java计算
java path/to/myApp -Xms280g -Xmx280g > output.txt
应该让Java立即保留280 if,如果失败就会出错。奇怪的是,没有发生错误,但top
只显示了30.4‘t的内存使用量,但它没有崩溃。这怎么会发生呢?如果不能分配初始堆大小,java不是应该崩溃吗?
实际上,在达到280 GC之前,一旦30.4 GC空间已满,我就会收到OutOfMemory/Java堆空间/GC开销限制错误。以250 or或300 or运行会产生类似的30.3 or~30.4 or的限制。我在Gentoo Linux上运行OpenJDK 64位服务器虚拟机和OpenJDK运行时环境(IcedTea6),并且有大量的空闲内存(超过300 64)。
https://stackoverflow.com/questions/23860364
复制相似问题