Perm Gen 的 Tomcat JMX 监控问题

Chr*_*ian 4 tomcat java permgen jmx

我的 jmx 监控有问题。我们用 jmx 监控一些 jvm 的 perm gen。但有时 mbean 的名称会从“PS Perm Gen”更改为“Perm Gen”,反之亦然。它发生在 tomcat 服务器重新启动时,但不是每次重新启动时都会发生。

jvm 版本是 1.5.0_16。

有没有人遇到过这个问题,也许有解决方案?

Rob*_*anu 7

您可能正在使用不同的垃圾收集器。PermGen内存区域的名称根据所选垃圾收集器的不同而不同:

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

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

验证启动脚本或环境设置中的任何不一致。

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

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