为了确定在下一次重新部署后 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...)
}
最佳答案
Memory MX Bean将为您提供所有非堆使用,perm gen 是其中的一部分。永久生成池本身的大小应该可以使用 Memory Pool MX Bean 获得。 ,但请注意池的名称是依赖于实现和 GC 的。
像往常一样,这两个 JMX bean 都可以从平台服务器获得,因此应该可以使用 JMX client 从外部获取它们。 .
编辑 - 链接更新到 1.7。
关于java - 在 Tomcat 中部署之前如何监控 PermGen 空间使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12086703/