JVM内存溢出环境备份方法

线上Tomcat服务内存溢出,且不容易重现,又没配置JMX监控端口,如何在不重启Tomcat的情况下备份堆dump和线程dump,进而分析原因?

因为Tomcat以服务模式运行,直接用JVisualVM无法找到该进程,直接在命令行窗口下用jmap等命令也不行。

为此需要借助Download PsTools中的PsExec工具提升命令行窗口权限,具体方法如下:

  1. 用管理员权限打开命令行窗口;
  2. 执行PsExec -s cmd,提升命令行窗口权限;
  3. 通过jps 或直接在任务管理器中找到Tomcat进程PID;
  4. 执行JMap和JStack工具命令分别备份该进程的堆dump和线程dump;
原文地址:https://www.cnblogs.com/doit8791/p/9201654.html