前言
作为 JAVA工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失。
第一步:使用 top
筛选出占用cpu高的进程
top
第二步:使用 top -Hp [进程id]
top -Hp 15792
第三步:使用 printf "%x\n" [线程id]
printf "%x\n" 16055
第四步:执行 jstack [进程id] |grep -A 10 [线程id的16进制]”
grep -A 30 :
-A #:显示匹配到的字符串所在的行以及其后 # 行(After)。
-B #:显示匹配到的字符串所在的行以及前 # 行(Before)。
-C #:显示匹配到的字符串所在的行以及前后各 # 行。(Contextt)
jstack 15792|grep '3eb7' -A 30