在我们的应用程序中,我们同时拥有Apache Server (for the front end only)和JBoss 4.2 (for the business / backend end)。我们使用Ubuntu 12作为服务器操作系统。我们的应用程序反复抛出java.lang.OutOfMemoryError: "Java heap space"。(它抛出OOME一个小时左右,然后在接下来的2-3个小时内恢复正常工作。然后,它重复该模式。)我们的Java内存设置是
-Xms512m -Xmx1024m我们的服务器物理上有6 GB的Ram。请指导我们,我们需要增加java堆大小。如果是,考虑到物理6 6GB的Ram,理想的大小应该是多少?
发布于 2015-01-15 18:17:44
你确定你没有内存泄漏吗?此外,如果您使用的是高内存的api,如用于doc的POI或用于PDF的itext,那么您将利用代码来保持较低的内存占用。您可以使用分析器来查看到底发生了什么。如果您仍然需要增加,请逐步增加,直到它达到适当的值。
喜欢
-Xms512m -Xmx1024m然后
-Xms512m -Xmx2048m所以..。
发布于 2015-01-15 18:28:49
我会检查你是否有内存泄漏,例如,是否有对象正在建立而没有被释放。
你可以使用分析器来做这件事,例如,visualvm或jmap -histo:live可能就足够了。
如果您没有内存泄漏,并且内存使用是有效的,我会尝试将最大内存量增加到您希望JVM使用的最大内存量,例如,4 GB。
https://stackoverflow.com/questions/27961066
复制相似问题