.

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

相關文章