假设生产环境出现CPU占用太高,请谈谈你的分析思路和定位

0、topjava

一、查看占用cpu大的进程线程

jps -l 或者 ps -ef|grep java|grep -v grep 3d

eg:blog

二、定位到具体线程或代码进程

ps -mp 5101(进程id) -o THREAD(进程),tid ,timegrep

参数说明im

-m:显示全部的线程d3

-p :pid进程使用的cpu的时间cpu

-o:该参数后是用户自定义格式top

 

三、将须要的线程id转换为16进制格式(英文小写格式)

例如:3929转为16进制为f59

等价于 printf "%x\n" 有问题的线程id

四、打印出进程id为对应线程id对应的前60行

jstack 进程id | grep tid f59(16进制线程id小写英文) -A60

相关文章
相关标签/搜索