如何在Mac中获取Tomcat的堆转储和线程转储

时间:2012-11-14 21:39:09

标签: java tomcat memory heap tomcat6

我正在尝试分析在Tomcat中部署的应用程序的内存使用情况。

当应用程序在tomcat中运行时,我需要获取堆转储和线程转储。

任何人都可以让我知道如何从终端为Tomcat获取这些转储。

我尝试使用“ps ux | grep apache”获取tomcat PID然后执行“kill -3 PID”,但没有任何反应......

2 个答案:

答案 0 :(得分:1)

它取决于您用来运行Tomcat的JVM。 我强烈建议使用JDK运行所有应用程序和服务器(如果是HotSpot,您可能会使用它)。 那么你应该有多个实用工具:

  • jps - 寻找你的pid
  • jstack - 用于获取线程转储
  • jmap - 用于获取堆转储。

或者你使用jvisualvm将所有工具捆绑成一个漂亮的用户界面。 最后,但并非最不重要的是,你可能得到了错误的PID: - )

答案 1 :(得分:0)

执行kill -3 PID后,Apache Tomcat的PID进程ID在哪里,线程转储将被写入/tomcat/logs/catalina.out