定位、排查應用卡頓問題的原因有諸多難點。針對這類問題,ARMS提供持續剖析、調用鏈路診斷、接口監控等一套解決方案,幫助您快速準確定位應用中所有慢調用,進而解決應用卡頓問題。
問題分析
網站卡頓、頁面加載過慢是互聯網應用最常見的問題之一。排查、解決網站卡頓、頁面加載過慢等問題過程復雜,耗時較長,原因如下:
應用鏈路太長
從前端頁面到后臺網關,從Web應用服務器到后臺數據庫,任何一個環節出現故障都有可能導致整體卡頓。
采用微服務架構的應用,鏈路更加復雜,而且不同組件可能由不同的團隊和人員維護,加劇了問題排查的難度。
日志不全或質量欠佳
應用日志是排查線上問題的主要方法,但出現問題的位置往往無法預期,而且“慢”通常是偶發現象,要真正找到“慢”的原因,需要在每個可能出現問題的地方打印日志,記錄每一次調用,但是成本太高。
監控不足
業務發展過快、應用快速迭代導致應用頻繁修改接口、增加依賴等情況,進而導致代碼質量惡化。應用需要一個完善的監控體系來自動監控應用的每一個接口,自動記錄出現問題的調用。
解決方案
為應用安裝ARMS探針后,即可在不改動應用代碼的情況下,使用ARMS應用監控的持續剖析、調用鏈路診斷、接口監控等功能,全方位監控應用中所有慢調用。
步驟一:安裝ARMS探針
為應用安裝ARMS探針后,才能對應用進行全方位監控。請根據實際需求選擇一種方式來安裝探針。具體操作,請參見應用監控接入概述。
步驟二:查看慢SQL的統計信息
為應用安裝ARMS探針后,ARMS會收集和展示選定時間內應用的總請求量、平均響應時間、錯誤數、實時實例數、Full GC次數、慢SQL次數、異常次數和慢調用次數,以及這些指標的周同比和日同比。請按以下步驟查看慢SQL的統計信息。
登錄ARMS控制臺,在左側導航欄選擇 。
在應用列表頁面頂部選擇目標地域,然后單擊目標應用名稱。
說明語言列顯示圖標的應用為接入應用監控的應用,顯示-圖標的應用為接入可觀測鏈路 OpenTelemetry 版的應用。
在應用總覽頁面的概覽分析頁簽下,查看慢SQL的總數、周同比和日環比數據。
步驟三:發現并鎖定慢調用
ARMS在接口調用頁面展示了被監控的應用提供的所有接口以及這些接口的調用次數和耗時,慢接口會被標注出來,幫助您發現和鎖定慢接口。
在左側導航欄,單擊接口調用。
在接口調用頁面的左側,單擊調用次數最多的慢接口,在右側查看慢接口的詳細信息。
步驟四:查看并鎖定問題代碼
鎖定慢接口后,需要找到問題代碼來解決問題。快照是對一次調用的全鏈路調用的完整記錄,包括每一次調用所經過的代碼及耗時,可以精準定位問題代碼。
在接口調用頁面右側,單擊調用鏈查詢頁簽。
調用鏈查詢頁簽下顯示該接口的所有調用鏈。
在調用鏈查詢頁簽下,單擊某個調用鏈路的TraceId。
在彈出的頁面,查看異常的調用鏈路信息,在詳情列,單擊放大鏡圖標,查看調用的方法棧,從而獲得異常的上下文信息。
說明如何查找目標調用鏈路,請參見調用鏈路查詢。
在本示例中,可以看到在耗時為705毫秒的調用中,大部分的時間都消耗在了
SELECT * FROM l_employee
這次SQL調用中。操作至此,您已發現了系統中的某個慢調用的原因,這將有效地幫助您進行下一步的代碼優化工作。您還可以返回接口調用頁面,查看列表中其他慢調用,逐一解決。
相關文檔
為避免在出現問題后被動診斷錯誤原因,您還可以使用ARMS的告警功能針對一個接口或全部接口創建告警,即可在出現問題時向運維團隊發送通知。如何創建告警,請參見應用監控告警規則。