1. 程式人生 > 實用技巧 >java程序cpu 100%問題排查

java程序cpu 100%問題排查

線上有一個java程式不能持續跑,跑著跑著就阻塞,今天開始定位問題所在。

1.ps aux 檢視執行緒pid

2.top 發現該程序長期cpu佔用過高

用top -p pid 檢視程式的情況也可以

3.執行“top -Hp 程序號”命令:檢視java程序下的所有執行緒佔CPU的情況

4.執行printf "%x\n 10" 序號 命令 :後續檢視執行緒堆疊資訊展示的都是十六進位制,為了找到咱們的執行緒堆疊資訊,咱們需要把執行緒號轉成16進位制。例如,printf "%x\n 10-》列印:a,那麼在jstack中執行緒號就是0xa

5.執行 “jstack 程序號 >程序號.dump 獲取堆疊資訊,然後在檔案中搜索37ad往下翻即可定位到問題程式碼

由此就定位到了問題程式碼