Arthas--深入排查java進程消耗CPU或內存過高問題

Arthas 是阿里巴巴開源的一款監控java進程的工具,可以有效監控CPU、內存使用情況,更厲害的是可以幫助開發人員深入排查java代碼的問題,比如java進程佔用cpu過高是哪一個線程執行哪一個類的哪一個方法出的問題

首先,先給大家普及一下Arthas的使用步驟:

Step1 下載安裝:
在線安裝方式: curl -O https://alibaba.github.io/arthas/arthas-boot.jar
離線方式:到github下載對應的已發佈的穩定的jar包 https://github.com/alibaba/arthas/tree/arthas-all-3.1.7
Step2 啓動:
java -jar arthas-boot.jar
啓動成功後如下圖所示:
在這裏插入圖片描述
上圖界面可以看到檢測到了16個java進程,其中一個不可用;默認當前會話選中的是第一個進程:3968

如果需要切換到其他進程怎麼辦呢?
直接輸入對應的進程編號即可,如下圖所示:
在這裏插入圖片描述
從圖中效果可以發現,雖然已經Attach捕獲進程成功,但是當前進程還是之前的會話進程3968,這是Arthas的一個坑
很簡單解決此問題,如下圖所示步驟:
先關閉當前會話,然後再重啓arthas,
在這裏插入圖片描述
在這裏插入圖片描述
如此以上兩個步驟即可解決這個坑人的問題~~

下面是簡單列舉下常用的命令:
命令:dashboard 當前系統的實時數據狀態看板,線程的cpu佔用情況,內存的消耗和垃圾回收情況等
在這裏插入圖片描述
命令:sc 查看JVM已加載的類信息
在這裏插入圖片描述

命令:sm 查看已加載類的方法信息
在這裏插入圖片描述
命令:trace 定位方法內部代碼塊性能耗時情況
在這裏插入圖片描述

命令:thread 顯示所有線程的信息
在這裏插入圖片描述
thread -n 3 展示當前最忙的前N個線程並打印堆棧
在這裏插入圖片描述

就此爲止,想查看更多的命令解釋,請參見官方文檔
https://alibaba.github.io/arthas/commands.html

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