如何在 Tomcat 中部署之前监控 PermGen 空间使用情况

Posted

技术标签:

【中文标题】如何在 Tomcat 中部署之前监控 PermGen 空间使用情况【英文标题】:Howto monitor PermGen space usage before redeploying in Tomcat 【发布时间】:2012-08-18 16:16:33 【问题描述】:

为了确定 jvm 在下一次重新部署后是否可能遇到 permgen 空间不足,我想事先监控当前 permgen 空间使用情况

类似:

set myPermGenThreshold = 0.51  (51%)
currentlyUsedPermGenSize = (...ask the jvm here... say it's 0.6)

if (currentlyUsedPermGenSize > myPermGenThreshold ) 
 (...restart tomcat...)

else 
  (...redeploy application...)

【问题讨论】:

你看过 JMX 吗?应该有一个命令行客户端。它可以提供我认为的数据。 【参考方案1】:

Memory MX Bean 将为您提供所有非堆使用,其中 perm gen 是其中的一部分。 perm gen 池本身的大小应该可以使用Memory Pool MX Bean 获得,但请注意池的名称是实现和 GC 相关的。

像往常一样,这两个 JMX bean 都可以从平台服务器获得,因此它们应该可以使用 JMX client 从外部获取。

编辑 - 链接更新到 1.7。

【讨论】:

完成 - 我们的企业基线是 1.5;我忘记了时间(和版本)已经过去了。 Here 是一个合理的 CLI jmx 客户端。

以上是关于如何在 Tomcat 中部署之前监控 PermGen 空间使用情况的主要内容,如果未能解决你的问题,请参考以下文章

企业运维之 zabbix 监控部署--监控应用

企业运维之 zabbix 监控部署--监控应用

性能测试二十:Tomcat多实例部署+日志监控

Maven - 在 JUnit 测试之前将 webapp 部署到 tomcat

监控tomcat运行情况,有啥好的工具

如何在idea中设置tomcat热部署