java - 在生产系统上详分割析 Tomcat 堆

标签 java tomcat heap-memory jmx

使用 JMX 控制台分析了一个在 tomcat 中运行的轻负载 Web 应用程序后,发现“PS Old Gen”增长缓慢但稳定。它从 200MB 开始,并以大约 80MB/小时的速度增长。

CPU 不是问题,它平均以 0-1% 的速度运行,但它会在某处泄漏内存,因此在部署后几天会变得不稳定。

我如何找出在堆上分配了哪些对象?您知道有什么好的教程或工具吗?

最佳答案

你可以试试 jmap , JDK Development Tools 之一.您可以使用 jhat使用您的网络浏览器查看堆转储的输出。

参见 this answer以获得简短的解释。

这经常出现,因此在 SO 中搜索这些工具应该会找到一些替代品。

关于java - 在生产系统上详分割析 Tomcat 堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/371495/

相关文章:

java - 初学java代码回顾

java - Oracle 和 Subversion 的集成

java - Apache poi 分页符

java - 如何找到给定 HTTP session 所属的用户

java - 单字母单词的正则表达式

windows - 如何在 30 秒内关闭 tomcat windows 服务(或向 SCM 询问更多时间)

java - 为 Tomcat 定制 WAR 部署

java - 对象的堆与字符串常量池内存表示

arrays - 生成伪语言的 C 程序 - 全局 3D 数组太大(段错误)?

javascript - 相同的 chrome 对象 ID 是否意味着堆分析器中的对象相同?