天天看點

[linux] cpu過高問題排查

前言:

在伺服器報cpu過高時,往往我們束手無策,不知道怎麼排查問題,今天就來分享一個cpu過高排查問題的方法,此文章為轉載文章。

  1. 使用top指令定位異常程序。可以看見12836的CPU和記憶體占用率都非常高
  2. [linux] cpu過高問題排查
  3. 此時可以再執行ps -ef | grep java,檢視所有的java程序,在結果中找到程序号為12836的程序,即可檢視是哪個應用占用的該程序。
  4. 使用top -H -p 程序号檢視異常線程
  5. [linux] cpu過高問題排查
  6. 使用printf “%x\n” 線程号将異常線程号轉化為16進制
  7. [linux] cpu過高問題排查
  8. 使用jstack 程序号|grep 16進制異常線程号 -A90來定位異常代碼的位置(最後的-A90是日志行數,也可以輸出為文本檔案或使用其他數字)。可以看到異常代碼的位置。
  9. [linux] cpu過高問題排查
在執行 ./jstack 程序号 | grep 16進制異常線程号 -A90 即可。