生產環境出現 CPU 佔用過高,不用看日誌也能定位


先用top命令找出CPU佔比最高的進程

在這裏插入圖片描述

進一步定位

jps -l
或者
ps -ef|grep java|grep -v grep
在這裏插入圖片描述

定位到具體的線程或者代碼

ps -mp 進程id -o THREAD,tid,time
如:
ps -mp 25754 -o THREAD,tid,time

  • -m 顯示所有的線程
  • -p pid進程使用 CPU 的時間
  • -o 該參數後是用戶自定義格式
    在這裏插入圖片描述

將線程ID轉換爲16進制格式

英文小寫格式

在這裏插入圖片描述
上圖有問題的線程Id轉成16進制:

十進制 十六進制
25755 649b

jstack 進程ID | grep 16進制的線程ID -A60

-A60 表示前60行

jstack 25754 | grep 649b -A60

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
成功找到問題所在了,該類第14行附近


Mr.superbeyone


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