Skywalking效能剖析

2022-09-14 19:21:09 字數 1654 閱讀 1524

簡介

**級效能剖析就是利用方法棧快照,並對方法執**況進行分析和彙總。並結合有限的分布式追蹤 span 上下文,對**執行速度進行估算。

優勢精確的問題定位,直接到**方法和**行

無需反覆的增刪埋點,大大減少了人力開發成本

不用承擔過多埋點對目標系統和監控系統的壓力和效能風險

按需使用,平時對系統無消耗,使用時的消耗穩定可能

​執行流程:

agent端每隔20秒向服務端發起請求,來向服務端詢問本agent是否有分析任務,如果接受到這個任務之後,就會在當前時間或者將來的某個時間開始監控操作。在服務端如果已經感知到agent端已經知道這個任務的時候,在profile頁面的任務詳情中,點開任務詳情的頁面,在彈出框的下方會展示一條日誌:包括:例項資訊、操作型別、操作時間等。

使用步驟

使用工程

live-demo 工程中 projectb 專案

修改 databaseoperatedao#selectuser 方法,設定乙個4s的睡眠

在skywalking中新建任務

監控 /projectb/1234 端點,持續5分鐘

需要注意的點

原始碼邏輯入口

由於效能棧快照有一定的效能消耗,所以採集週期不宜過密,skywalking 目前不支援小於 10ms 的採集間隔。所以如果問題方法執行時間小於 10ms,此方法並不適用。同時剖析端點的響應速度如果小於監控時間間隔,也無法進行監控採集。

​傳送請求

檢視剖析結果

上圖所示的就是鏈路追蹤時的真實執**況,**中從左到右分別展示了方法名、開始時間、執行時長、執行時間佔比、api型別、服務名和跨度資訊。其中可以看到前面設定了4s睡眠的 selectuser 方法執行速度最慢。再點選分析按鈕,可以檢視對應方法的呼叫棧。

從左右到右分別展示了棧幀名稱、該棧幀總計耗時(包含其下面所有自棧幀)、當前棧幀自身耗時和監控次數

繼續向下查詢可以發現 selectuser 的棧楨資訊,從這裡可以看到方法是真正卡在了執行緒睡眠邏輯中

參考:

mysql效能剖析

在程式這一層面進行剖析,第三方工具new relic,oneapm等.可以很直觀的展現程式的使用情況,伺服器cup,磁碟等情況,每乙個請求的響應時間等.在定位到是資料庫比較慢之後,那麼如何定位到是哪些sql執行比較緩慢,通過下面的慢查詢日誌.mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用...

Skywalking急速安裝

tips 本文基於skywalking 6.6.0編寫,理論支援skywalking所有版本。環境需求 確保如下埠可用 安裝 啟動 安裝skywalking比較簡單,解壓,然後根據作業系統的不同,執行對應命令即可。linux或macos 執行 cd apache skywalking apm bin...

skywalking 問題彙總

一 遇到es儲存磁碟空間滿了 檢視skywalking collector日誌 cd usr local skywalking logs tail 600f skywalking oap server.log錯誤資訊如下 searchphaseexecutionexception all shard...