Arthas診斷
更新時間 2024-08-19 09:43:39
最近更新時間: 2024-08-19 09:43:39
分享文章
Arthas用于實時分析和診斷Java應用程序的性能問題,包含JVM概覽、線程耗時分析、方法執行分析和對象查看器功能,無需重啟JVM進程,方便監視應用程序的狀態。
功能入口
- 選擇目標資源池,并登錄APM組件控制臺。
- 在左側導航欄中選擇「應用監控」-「應用列表」。
- 在應用列表中選擇您想查看的應用,點擊「應用名稱」打開新的應用詳情鏈接。
- 在左側導航欄中選擇「應用診斷」-「Arthas診斷」,您可以在Arthas診斷頁面按需切換頁簽,實時監控具體信息。
使用前提
僅Agent1.6以上版本,且應用設置中有開啟應用診斷開關的應用可以使用該功能。
功能說明
JVM概覽
JVM概覽提供了有關Java虛擬機當前狀態的總體視圖,包括內存使用情況、GC情況、操作系統信息和系統環境變量信息,用于快速了解Java應用程序的整體狀態,幫助診斷性能問題和優化應用程序。
| 版塊 | 說明 |
|---|---|
| 內存 | 實時顯示堆內存、非堆內存的使用情況 |
| GC | 顯示不同GC類型的次數及耗時 |
| 操作系統 | 顯示諸如當前操作系統的名稱、架構、版本等信息 |
| 系統變量 | 顯示諸如Java系統屬性、應用程序自定義屬性等信息 |
| 環境變量 | 顯示諸如系統環境變量、應用程序環境變量等信息 |
線程耗時分析
線程耗時分析模塊用于分析Java應用程序中各個線程的執行情況和耗時情況,可以查看各個線程的狀態、堆棧信息、運行時間,幫助發現線程阻塞、死鎖等問題,用于定位線程相關的性能問題,識別哪些線程占用了較多的CPU時間或處于阻塞狀態。
| 版塊 | 說明 |
|---|---|
| 線程狀態統計 | 區分包括新建、運行、等待、超時等待等多種線程狀態并統計總數 |
| 線程明細表 | 聚合相似線程,實時顯示CPU使用率及狀態 |
| 實時堆棧 | 支持查看線程的實時堆棧詳情 |
方法執行分析
方法執行分析模塊用于跟蹤和分析Java應用程序中方法的執行情況,包括執行時間、調用棧等信息。可以監視方法的執行時間、調用次數,識別熱點方法,幫助優化應用程序的性能。
需要您輸入選擇具體的類名方法,我們在捕獲到執行行為時,顯示對應的耗時明細、調用來源和方法源碼。
耗時明細
| 版塊 | 說明 |
|---|---|
| 方法明細表 | 顯示當前方法子級的調用耗時,支持持續下鉆查看子級信息 |
| 執行上下文 | 顯示選中方法的執行上下文信息,當前提供的默認觀測項包含params、returnObj、throwExp、target |
調用來源
顯示方法被調用的路徑,包括調用者和被調用者之間的關系,可幫助理解方法之間的調用關系,定位問題代碼的調用路徑,分析方法執行的上下文。
方法源碼
顯示方法的源代碼文本,包括方法的邏輯和實現細節,可幫助深入理解方法的功能和實現細節,有助于優化方法的執行邏輯和性能。
對象查看器
對象查看器可以執行查詢來查找符合條件的對象,查看對象的屬性值,幫助定位內存泄漏或對象引用問題。用于分析Java堆中的對象分布情況,幫助排查內存相關問題和優化內存使用。
需要您輸入選擇類名及類實例,根據對象類型展示對應信息。
例如簡單的字段類型諸如String、Bollean會顯示當前值;復雜的諸如Class、ArrayList則支持下鉆,同時右側顯示具體的字段詳情。