连续两天tomcat出现了假死的情况,不响应任何请求。但是日志里面没有看到任何相关异常。
调查方法,把当前内存堆栈和线程堆栈打印出来,然后进行分析。
#dump 方法栈信息 jstack $pid > /home/$pid/jstack.txt #dump jvm内存使用情况 jmap -heap $pid > /home/$pid/jmapheap.txt #dump jvm二进制的内存详细使用情况 (效果同在Tomcat的catalina.sh中添加 set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/heapdump 此文件需要借用内存分析工具如:Memory Analyzer (MAT)来分析) jmap -dump:format=b,file=/home/$pid/jmapdump.txt $pid