0

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

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

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

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

4

2 回答 2

1

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

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

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

于 2012-11-25T21:05:24.543 回答
0

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

于 2016-05-20T07:50:49.790 回答