服务器CPU 过高问题排查步骤
先通过 top 命令查看排名靠前的进程 拿到其PID
top -H -p PID 查看实时的线程 cpu占用率 ,找出那些排名靠前的线程号
使用printf "%x\n" 线程号将异常线程号转化为16进制
使用jstack查看进程的日志 jstack -l 线程号
使用jstack 进程号|grep 16进制异常线程号 -A90来定位异常代码的位置
这些东西网上一搜就是一堆标准答案
其实这些都是舍近求远, JDK 自带非常强大的监控工具 Visualvm 工具 ,在
C:\Program Files\Java\jdk1.8.0_144\bin\jvisualvm.exe 双击就可以运行的可视化工具。
他不但能查看本机的Java实例,还能远程连接 liunx 上的Java实例。
当然需要连接远程需要做一些配置,网上详细配置方法