在我们的申请中,我们同时拥有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堆大小。如果是的话,考虑到物理6GB的Ram,应该是理想的尺寸。
答案 0 :(得分:1)
你确定你没有内存泄漏吗?此外,如果您使用api(如POI for doc或itext for PDF)使用高内存,则可以使用代码来降低内存占用。您可以使用分析器查看到底发生了什么。如果您仍然需要逐步增加增量,直到达到适当的值。
喜欢
-Xms512m -Xmx1024m
然后
-Xms512m -Xmx2048m
等......
答案 1 :(得分:1)
我会检查你是否有内存泄漏,例如是否有物体积聚而没有被释放。
您可以使用分析器来完成此操作,例如visualvm或jmap -histo:live
可能就足够了。
如果您没有内存泄漏并且内存使用率有效,我会尝试将最大值增加到您希望JVM使用的最大内存量,例如4 GB。