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

标签 java tomcat memory heap-memory tomcat6

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

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

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

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

最佳答案

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

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

或者您使用 jvisualvm,它将所有工具捆绑到一个漂亮的用户界面中。 最后但同样重要的是,您可能得到了错误的 PID :-)

关于java - 如何在 Mac 中获取 Tomcat 的堆转储和线程转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387794/

相关文章:

java - 加密消息但无法在 android 中解密

java - EXcel 表 POI 验证 : Out Of Memory Error

java - Tomcat 的 server.xml 的 JBoss 等价物是什么?

java - 如何处理过滤器中抛出的异常?

c++ - 如果其他程序在 64 位 Windows 中使用过多,32 位程序是否会内存不足?

java - 使用 double in 循环。舍入可能出现问题

java - Intellij 警告 : Boolean method foo() is always inverted

tomcat - Javafx-Rich-Client-Applications 持续集成的最佳方式是什么

c - 如何在linux中使用C分配大数组

memory - 为背景图像设置动画时 iPad 崩溃