linux java cpu 100%問題排查

一、通過jdk自帶包裏面的工具
1.
通過top找出cpu高的PID
例如(這裏cpu佔用率不高,隨便找個java進程做個例子):
在這裏插入圖片描述
可以通過ps aux | grep PID可以更詳細的看到這個進程到底是什麼項目

2.top -H -pPID 找到cpu佔用率比較高的線程tid
如:top -H -p21264
在這裏插入圖片描述

3.其次將需要的線程ID轉換爲16進制格式:
printf “%x\n” tid
如 printf “%x\n” 21276
在這裏插入圖片描述
4.通過jstack查看這個線程現在在執行的東西
jstack pid |grep tid -A 50
如:jstack 21264 | grep 531c -A 50

二、通過arthas快速定位
官網:https://alibaba.github.io/arthas/
1.啓動arthas(查官網)
2.dashboard 找cpu佔用高的線程
3.thread 線程id 查看調用堆棧

三、jmap使用
1.通過top找出內存佔用高的PID
1.jmap -dump:format=b,file=/mnt/result.data PID
導出改PID的內存情況
2.通過eclipse的mat工具或者其他工具,導入這個result.data文件,可以可視化看具體的內存情況
排序找內存佔用比較大的對象

四、perf等工具——自己調研一下

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