Tomcat JMX 监控中 Perm Gen 的问题

Tomcat JMX 监控中 Perm Gen 的问题

我的 jmx 监控出现了问题。我们使用 jmx 监控某些 jvm 的 perm gen。但有时 mbean 的名称会从“PS Perm Gen”更改为“Perm Gen”或反之亦然。这种情况会在 tomcat 服务器重启时发生,但并非每次重启都会发生。

jvm版本是1.5.0_16。

有谁遇到过这个问题并且有解决方案吗?

答案1

您大概使用了不同的垃圾收集器。内存区域的名称PermGen根据所选的垃圾收集器而不同:

  • -XX:+UseParallelGC: PS 永久生成
  • -XX:+UseConcMarkSweepGC: CMS PermGen
  • -XX:+UseSerialGC: 永久代

看起来 Tomcat 是使用串行(stop-the-world)收集器或并行收集器启动的。

验证启动脚本或环境设置中是否存在不一致。

更新:垃圾收集器和内存设置受JVM 人体工程学,这意味着它们会在启动时根据运行 JVM 的计算机的特性自动选择。我现在找不到任何参考资料,但我记得它们是基于 CPU 架构和可用内存总量的。

我建议你在启动脚本中指定一个垃圾收集器。根据你的应用程序,随机选择一个垃圾收集器可能不太好。

相关内容