arthas的使用入門

jackieathome發表於2024-08-14
  • 官網
  • 程式碼倉庫

    Alibaba Java Diagnostic Tool Arthas/Alibaba Java診斷利器Arthas

  • 官方文件-中文
  • 官方文件-英文
  • 使用指導

常見問題

常見的現象,如下:

  • CPU佔用率高,介面的響應時延大。
  • CPU佔用率低,介面的響應時延大或者無響應。
  • 功能測試的場景下,CPU佔用率超出預期。
  • 壓力測試的場景下,CPU佔用率低,壓力增加後,吞吐量提升不明顯,CPU佔用率提升不明顯。
  • 壓縮測試的場景下,介面的時延不穩定,隨著壓力上升而上升。

可能的原因,如下:

  • 程式碼中出現了死鎖
  • 程式碼中出現了死迴圈
  • 業務路徑上存在耗時操作
  • 計算資源分配不均衡,比如執行緒池的數量分配不合理,CPU核的分配不合理
  • 記憶體資源的分配不合理
  • 資源的使用方面存在瓶頸

參考資料

  • Arthas使用教程(8大分類)
  • Arthas基礎
  • 線上安裝Arthas以及常用命令介紹
  • jvm調優神器arthas(阿爾薩斯)安裝與調優介紹
  • Arthas阿爾薩斯的使用安裝詳細教程
  • Java 診斷工具 Arthas 常見命令(超詳細實戰教程)
  • 太方便了!Arthas,生產問題大殺器

JProfiler

在arthas誕生前,一般使用JProfiler工具定位問題,工具本身很強大,但是開發用機的硬體規格比較差,使用JProfiler掛載到被測試程式後執行時比較慢,雖然可以找到執行耗時的程式碼片段,最終定位到問題,但比較麻煩。

如下是相關的資料:

  • 官網
  • IDEA整合JProfiler、JProfiler安裝、JProfiler使用
  • Java效能分析神器-JProfiler詳解

MAT

MAT即Memory Analyzer,基於eclipse框架開發,分析JVM堆的利器,一般常用於記憶體類問題的分析。

  • 官網
  • 下載
  • 程式碼倉庫
  • MAT(Memory Analyzer Tool)-Java記憶體分析入門實踐
  • 想了解Java記憶體分析工具MAT?看這裡哦
  • Java記憶體分析:MAT和VisualVM的魔法之旅
  • 堆記憶體分析器MAT
  • 【JAVA篇】JVM 堆記憶體問題排查之 MAT

其它工具

JDK自帶的工具,比如:

  • jstack -l
  • jmap
  • jstat
  • jhat
  • jps
  • jinfo
  • jvisualvm

Linux作業系統的工具,比如:

  • ps -ef
  • top -H -p <pid>