現象:最近時間出現了兩次tomcat無法響應,重啓就恢復正常。經查看日誌,有幾處可疑點。
下面是查找此問題用到的工具和方法和大家共享。
阿里雲centos目前安裝的是openjdk,先執行whereis java查看目錄,找到bin文件java.exe同個目錄發現沒有,安裝openjdk-devel
執行yum install java-1.7.0-openjdk-devel,安裝後java文件夾有調試工具。安裝運行jmap出錯
Caused by: java.lang.RuntimeException: unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
這個是需要下載 openjdk-debuginfo包
https://www.rpmfind.net/linux/rpm2html/search.php?query=java-1.8.0-openjdk-debuginfo,安裝包安裝後還是出現的話,一般是版本不一致導致的。
jdk工具之jps
jps主要用來輸出JVM中運行的進程狀態信息
jdk工具之jstack
jstack主要用來查看某個Java進程內的線程堆棧信息。jstack可以定位到線程堆棧,根據堆棧信息我們可以定位到具體代碼,所以它在JVM性能調優中使用得非常多。
jdk工具之jmap,jhat
jmap用來查看堆內存使用狀況,一般結合jhat使用。
jdk工具之jstat
JVM統計監測工具
jdk工具之hprof(Heap/CPU Profiling Tool)
hprof能夠展現CPU使用率,統計堆內存使用情況。