服务器上的初始和最大推荐堆大小

时间:2017-07-17 14:40:44

标签: java glassfish heap-memory

我在Glassfish应用程序服务器(4.0)上运行了几个应用程序。我已经使用DataDog记录了一些java内存使用情况的统计信息,因此我能够看到使用过的堆内存的历史记录以及初始最大常量堆大小。

Initial, maximum and real heap values 图像显示初始(黄色),最大(蓝色)和实际(紫色)堆值。

正如您在上面所看到的,实际堆大小始终低于初始堆值,因此我计划移动这些参数以提高服务器的性能,但我不确定这是否真的有必要。

所以,我有这样的疑惑:

  1. 值得修改堆参数吗?
  2. 如果是这样,哪些参数通常是正确的? (例如:初始值比平均实际堆值高100 mb,最大值是该数值的两倍)。
  3. 我想这些问题适用于tomcat,JBoss或任何面向servlet的服务器。

    将非常感激地收到任何帮助。

1 个答案:

答案 0 :(得分:1)

取决于。此外,您的图片不会显示在我的回答中。

如果你的机器超级内存饥饿而且你是没有无限收入的个人,我认为你的方法会很好。我会建议稍微高一点的任意百分比,例如50%,以提供一些摆动空间。继续分析内存使用情况并相应调整最大值。我认为没有任何理由将内存使用率设置为低于默认值。

否则,您可以更加无偿,并提供100-200%的额外内存,以防您的应用程序遇到突然的重负荷。