線程分析功能提供線程粒度的CPU耗時和每類線程數量的統計,並且每5分鐘記錄一次線程的方法棧並彙總,可真實還原代碼執行過程,協助您快速定位線程問題。當發現叢集的CPU使用率過高,或者出現大量慢方法時,可以通過線程分析功能找到消耗CPU最多的線程或方法。
功能入口
登入ARMS控制台,在左側導覽列選擇 。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
-:接入Managed Service for OpenTelemetry的應用。
在左側導覽列中選擇 。
進行線程分析
線程分析頁面的左側列表展示了應用的全部線程,您可以根據CPU耗時統計快速發現異常線程。選中某一異常線程後,再根據右側的CPU耗時和線程數曲線圖分析CPU耗時與線程數變化,例如分析每分鐘的線程總數是否過多。
您還可以單擊異常線程的方法棧,查看指定時間內的真實運行方法棧,例如查看處於BLOCKED狀態的線程對應的方法,從而最佳化指定程式碼片段,以便降低CPU使用率。
如果您的探針版本為2.7.3.5或以上版本,ARMS通過持續剖析能力提供了資料更準確的線程CPU使用方法棧資訊,效果如下圖所示,更多資訊,請參見持續剖析。
說明
如果單擊方法棧後,顯示無資料,排查方法如下:
如果探針版本為2.7.3.5以下,則在
頁簽的線程設定地區查看線程分析方法棧開關是否開啟。如未開啟,則無法記錄方法棧資訊;如已開啟,則每5分鐘採集一次方法棧資訊。如果探針版本為2.7.3.5及以上,則在
頁簽的持續剖析地區查看總開關和CPU熱點開關是否開啟。如未開啟,則無法記錄方法棧資訊。