天天看點

cpu負載過高原因排查

1. top -d 1

cpu負載過高原因排查

指令解釋:程序界面每1s重新整理一次

2.top -H -p pid或者 ps -mp pid -o THREAD,tid,time | sort -rn

cpu負載過高原因排查

   

指令解釋:檢視指定程序中各線程的狀态,選出最繁忙的線程tid

3.printf  "%x\n"  tid

cpu負載過高原因排查

 指令解釋:将線程ID轉換為十六進制

4. jstack pid | grep tid -A30

cpu負載過高原因排查

 指令解釋:檢視線程的堆棧資訊

接下來就是排查代碼了。

CPU負載過高有幾方面原因:

  • 程式計算密集
  • 程式死循環
  • 多線程阻塞
  • IO讀寫頻繁

每一步腳印都要紮得深一點!