java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
我得到这个错误我的系统内存是3GB,我已经给了-Xmx1280M
。尽管如此,我还是得到这个错误。在其他一些机器与2GB内存和-Xmx1280M
选项,此错误不会出现(相同的操作)。可能是什么问题?我正在使用java VisualVM来跟踪哪些对象正在占用内存,但在OOME生成的堆非常大。加载堆需要花费大量时间,“计算保留大小”似乎永远不会结束。
我应该怎么做才能从OOME中恢复?
3条答案
按热度按时间l2osamch1#
在64位JVM中运行同一应用程序可能会多消耗两倍的内存。
如果您获得OOME的计算机安装了64位JVM,而您没有例外的计算机是32位JVM,则您的方案是可能的。
没有你的应用程序,很难回答更多问题。
nkcskrwz2#
关闭服务器,删除所有缓存并重新启动。当问题仍然存在时,它必须是不同的系统配置,数据库等,并可能追溯到一些错误的编码。
2q5ifsrm3#
将堆的最大值和最小值设置为相同的大小(-Xms 1280 m-Xmx 1280 m),以便JVM在启动时尝试获取全部的堆。这可能是因为在一台机器上没有足够大的连续内存块。
我见过病毒检查程序和其他软件阻止JVM找到连续的块,即使是在有大量空闲RAM的情况下。