- 官網
- 程式碼倉庫
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>