java程序服務器CPU佔用過高問題排查步驟及問題解決

1、cpu過高是那個程序造成的?使用top命令

2、更具PID來查看具體是那個進程下對應的線程造成,及通過進程來確定cpu過高的線程tid。

命令:Ps -mp pid -o THREAD,tid,time

 

3、因爲線程的id都是16進制的需要將10進制轉換成16進制,

方法:1、直接使用計算器

方法:2、使用命令

得到結果:得到這三個數的16進製爲別爲3ec4,3ec5,3ec7

 

4、jstack查看進程信息然後利用grep來過濾對應的線程id信息。

通過jstack -pid |grep tid 查詢/或者直接使用 jstack -pid |grep tid  -A60(顯示前60行)

從這裏能看出,這3個線程目前還處於運行狀態的

再通過jstack查看詳細點的信息

剩下2個圖就省略了

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章