现象:最近时间出现了两次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使用率,统计堆内存使用情况。