cpu使用率太高和jvm old佔用太高排查

cpu佔用太高排查思路

  • top 查看佔用cpu的進程 pid
top - 17:50:38 up 119 days, 23:39,  1 user,  load average: 0.00, 0.08, 0.07
Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.4 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 32780552 total,  8852484 free, 11627780 used, 12300288 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 19048468 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  ............
  • top -Hp pid 查看進程中佔用cpu太高的線程id tidjvm

  • printf '%x\n' tid 轉化爲十六進制線程

~ printf '%x\n' xxx
  • jstack pid | grep tid 的十六進制查看堆棧信息定位
jstack xxx | grep `33f0`
"jenkins.util.Timer [#7]" #73 daemon prio=5 os_prio=0 tid=0x00002b7c0c2f9000 nid=`0x33f0` waiting on condition [0x00002b7c1f47e000]

jvm old區佔用太高排查思路

  • top查看佔用cpu高的進程
  • jstat -gcutil pid 時間間隔 查看gc情況
  • jmap -dump:format=b,file=name.dump pid 導出dump文件
  • 用visualVM分析dump文件
相關文章
相關標籤/搜索