如何在 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 空间使用情况的主要内容,如果未能解决你的问题,请参考以下文章