假設生產環境出現CPU佔用過高,請談談你的分析思路和定位
阿新 • • 發佈:2019-06-03
0、top
1、檢視佔用cpu大的程序
jps -l 或者 ps -ef|grep java|grep -v grep
eg:
2、定位到具體執行緒或程式碼
ps -mp 5101(程序id) -o THREAD(程序),tid ,time
引數說明
-m:顯示所有的執行緒
-p :pid程序使用的cpu的時間
-o:該引數後是使用者自定義格式
3、將需要的執行緒id轉換為16進位制格式(英文小寫格式)
例如:3929轉為16進製為f59
等價於 printf "%x\n" 有問題的執行緒id
4、打印出程序id為對應執行緒id對應的前60行
jstack 程序id | grep tid f59(16進位制執行緒id小寫英文) -A60