JVM調優工具Arthas的使用


Arthas 是Alibaba開源的Java診斷工具,深受開發者喜愛。在線排查問題,無需重啟;動態跟蹤Java代碼;實時監控JVM狀態。


Arthas 支持JDK6+,支持Linux/Mac/Windows,采用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

文檔: https://alibaba.github.io/arthas/

安裝啟動Arthas

curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

選擇應用Java進程:

需要觀察進程是第5個,則輸入5,再輸入回車/Enter
Arthas會attach就到目標進程上

基礎命令

help——查看命令幫助信息
cls——清空當前屏幕區域
history——打印命令歷史
quit——退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響
stop——關閉 Arthas 服務端,所有 Arthas 客戶端全部退出

jvm命令

dashboard——當前系統的實時數據面板
thread——查看當前 JVM 的線程堆棧信息
jvm——查看當前 JVM 的信息
sysprop——查看和修改JVM的系統屬性
sysenv——查看JVM的環境變量
vmoption——查看和修改JVM里診斷相關的option
heapdump——dump java heap, 類似jmap命令的heap dump功能

分析命令

monitor——方法執行監控
watch——方法執行數據觀測
trace——方法內部調用路徑,並輸出方法路徑上的每個節點上耗時
stack——輸出當前方法被調用的調用路徑
tt——方法執行數據的時空隧道,記錄下指定方法每次調用的入參和返回信息,並能對這些不同的時間下調用進行觀測

推薦命令

thread

可以排查死鎖。查看當前線程信息,查看線程的堆棧

thread -b:找出當前阻塞其他線程的線程
有時候我們發現應用卡住了, 通常是由於某個線程拿住了某個鎖, 並且其他線程都在等待這把鎖造成的。
為了排查這類問題, arthas提供了thread -b, 一鍵找出那個罪魁禍首。
thread –state:查看指定狀態的線程

trace

可以在性能測試中分析鏈路上方法的執行時間,判斷性能問題所在。
trace根據方法內部調用路徑,並輸出方法路徑上的每個節點上耗時。

trace 命令能主動搜索 class-pattern/method-pattern 對應的方法調用路徑,渲染和統計整個調用鏈路上的所有性能開銷和追蹤調用鏈路。

trace 包類名 方法 
trace com.itest.itestapi.TestController iTestGet

掃一掃,關注我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM