一、top命令找出cpu使用率最高的进程(PID),进一步定位可用ps -ef 或者 jps -l
top
jps -l
ps -ef | grep java | grep -v grep
进程PID=5101
二、根据进程ID查线程ID,用ps - mp定位到具体线程或者代码
ps -mp 进程 -o THREAD,tid,time
-m 显示所有线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式
ps -mp 5101 -o THREAD,tid,time
线程TID=5102 的cpu使用率高
三、定位具体问题代码行号,用jstack 进程ID | grep tid(16进制线程ID小写英文) -A100
TID=5102 由10进制转16进制是:13ee
jstack 5101 | grep 13ee -A100
即可定位到java代码行号
四、JVM性能监控工具(常用)
统计信息监控工具
jstat
虚拟机进程状况工具
jps
内存映像工具
jmap
Java配置信息工具
jinfo