生成dump文件,分析内存使用情况
找到对应服务的pid
jps -l
这会列出所有 Java 进程及其主类,你可以找到类似于 org.apache.catalina.startup.Bootstrap 的行,这就是 Tomcat 的主类
或者
ps aux | grep java
这会列出所有包含 "java" 的进程,从中你可以找到 Tomcat 的进程。
如果你倾向于使用命令行,那么使用jmap和jstack会更加直接和灵活。
生成堆转储:
jmap -dump:format=b,file=heapdump.hprof <PID>
jcmd <pid> GC.heap_dump <filename.hprof>
生成线程转储:
jstack <PID> > threadDump.txt
配置Tomcat自动生成dump文件则适合那些希望在发生特定错误时自动捕获问题状态的情况。
这通常涉及到修改Tomcat的启动脚本或者在应用中加入相关的JVM参数。例如,你可以在启动脚本中加入以下参数:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/your/dump/directory
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/dump.hprof -jar your_application.jar
浙公网安备 33010602011771号