線上CUP負載過高排查方法

 
1.top命令查看執行緒佔據的CPU

 

 

注意:上面行的cpu是多個內核的平均CPU,不可能超過100%
下面的cpu是每個進程實際佔用的cpu,可能超過100%
備註:查看多個內核cpu,只需要在輸入top後,輸入1
 
2.查看進程下每個執行緒的資源使用情況
top -Hp pid(進程最高的那個進程ID)
例如:top -Hp 6401 可以看到每個執行緒佔據的CPU
 
3.查看執行緒詳情
比如資源佔用最高的那個執行緒ID是6461
 
printf %x 6461 :查看執行緒ID 6461對應的16進位(堆棧日誌中執行緒號是用16進位標記的)
 

 

jstack 6401 |grep 193d -C 30 :193d是6461執行緒ID對應點的16進位
從堆棧快照 中 查看執行緒的詳細狀態資訊 

jstack -l 6401 > dump 將堆棧資訊輸出到一個文件中 ,後續可以用工具解析該堆棧快照

 

Tags: