假設生產環境出現CPU佔用太高,請談談你的分析思路和定位

0、topjava

一、查看佔用cpu大的進程線程

jps -l 或者 ps -ef|grep java|grep -v grep 3d

eg:blog

二、定位到具體線程或代碼進程

ps -mp 5101(進程id) -o THREAD(進程),tid ,timegrep

參數說明im

-m:顯示全部的線程d3

-p :pid進程使用的cpu的時間cpu

-o:該參數後是用戶自定義格式top

 

三、將須要的線程id轉換爲16進制格式(英文小寫格式)

例如:3929轉爲16進製爲f59

等價於 printf "%x\n" 有問題的線程id

四、打印出進程id爲對應線程id對應的前60行

jstack 進程id | grep tid f59(16進制線程id小寫英文) -A60

相關文章
相關標籤/搜索