使用 JMX 控制台分析了在 tomcat 中运行的轻负载 Web 应用程序后,发现“PS Old Gen”增长缓慢但持续。它从 200MB 开始,然后以每小时 80MB 左右的速度增长。
CPU不是问题,它平均运行在0-1%,但在某个地方它会泄漏内存,所以部署后几天会变得不稳定。
我如何找出堆上分配了哪些对象?您知道有什么好的教程或工具吗?
你可以尝试jmap http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html, 中的一个JDK开发工具 http://java.sun.com/javase/6/docs/technotes/tools/。您可以使用jhat http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html使用网络浏览器查看堆转储的输出。
See 这个答案 https://stackoverflow.com/questions/154309/how-do-i-make-sure-my-objects-get-garbage-collected#154570进行简短的解释。
这种情况经常出现,因此搜索这些工具应该会找到一些替代方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)