連續兩天tomcat出現了假死的狀況,不響應任何請求。可是日誌裏面沒有看到任何相關異常。tomcat
調查方法,把當前內存堆棧和線程堆棧打印出來,而後進行分析。jvm
#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