首页 > 代码库 > jstack命令定位java程序CPU利用率高的代码位置

jstack命令定位java程序CPU利用率高的代码位置

高手是怎么使用jstack精确找到异常代码的(java程序CPU利用率高的情况)

请jstack神器来帮忙

本文介绍Linux环境下使用jstack定位问题的秘笈
s1.【top命令】找到CPU利用率持续比较高的进程,获取[进程号],此处PID为 12891
12891

s2.【ps p 12891 -L -o pcpu,pid,tid,time,tname,cmd 命令】找到上述进程中,CPU利用率比较高的[线程号TID](十进制数),此处为 12946
ps p 12891 -L -o pcpu,pid,tid,time,tname,cmd
12946

s3.【printf "%x\n"  12946命令】将获取的线程号(十进制数)转换成[十六进制],此处为 0x3292
printf "%x\n"  12946
3292

s4.【jstack -l 12946 】查看进程PID为3036中,nid为 0x3292 的线程信息
jstack -l  12891 > /home/temp1 & vi /home/temp1 搜索到 0x3292 ,看到代码位置

jstack命令定位java程序CPU利用率高的代码位置