Redhat Enterprise Linux 5.4 32位+ Sun HotSpot JVM 6u5 32位+ JVM设置-Xms1536m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m

JVM因以下错误而崩溃:



可能是JVM本身的C / C++核心内存泄漏,C / C++内存使用量达到了JVM临界值或平台交换空间不足。

如何处理JVM本身的C / C++核心内存泄漏?
Valgrind v3.7无法与热点JVM 6u5一起使用。

最佳答案

此处的JVM崩溃令人不快。问题是该进程用完了地址空间。一般而言,“-Xmx2048m”对于当前可用的虚拟内存和/或特定的32位O / S来说太大了。

在32位Windows下,任何进程最多只能寻址约1.6GB RAM。
其他操作系统取决于。 Linux最多可以使用3GB。

除了对象堆大小(-Xmx)之外,JVM还需要更多RAM用于堆栈,对象管理,gc结构等。实际上,这导致32位Windows系统上的最大堆大小约为1100MB。

有关进程内存大小限制的更多详细信息,请参见例如tis博客文章:https://sinewalker.wordpress.com/2007/03/04/32-bit-windows-and-jvm-virtual-memory-limit

10-02 04:16
查看更多