java - 服务器上建议的初始堆大小和最大堆大小

标签 java glassfish heap-memory

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

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

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

所以,我有这样的疑问:

  1. 是否值得修改堆参数?
  2. 如果是这样,哪些参数通常是正确的? (例如:初始值比平均实际堆值高 100 mb,最大值是该数字的两倍)。

我想这个问题对于 tomcat、JBoss 或任何面向 servlet 的服务器来说都是正确的。

如有任何帮助,我们将不胜感激。

最佳答案

这要看情况。另外,根据我的回答,您的图像不会显示。

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

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

关于java - 服务器上建议的初始堆大小和最大堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45147143/

相关文章:

java - :message elements with for attribute do not present messages in JSF 2

c++ - HeapAlloc 返回 0xC0000017 : Not Enough Quota

java - 我需要从 java 类调用 Spring 服务,如何从 java 类设置 spring 应用程序的 Activity 配置文件

java - Java 中的节点使用哪种数据结构?

java - 与搜索引擎优化相关的网络应用程序设计问题

eclipse - Eclipse Juno 中不支持 GlassFish 服务器吗?

java.lang.OutOfMemory错误: Java heap space in rserve java

java - java堆调优中NewRatio的最小值

c - 在退出时释放所有堆

java - 通过使用自己的 keystore 而不是将证书添加到 Java JVM 的默认 cacerts 来解决 SSLHandshakeExceptioncertificate_unknown