如何使用arthas+jprofiler做復(fù)雜鏈路分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)云計算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、托管服務(wù)器、云服務(wù)器、雅安服務(wù)器托管、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗,已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機、雅安服務(wù)器托管、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
Arthas 是阿里巴巴開源的應(yīng)用診斷利器,提供了 profiler 命令,可以生成熱點火焰圖。通過采樣錄制調(diào)用鏈路來做性能分析,極大提升了線上排查性能問題的效率。
但是有一個問題,當(dāng) async-profiler 全量采樣導(dǎo)出的 svg 文件太大時,想要找到關(guān)鍵的調(diào)用點,就非常困難。
比如下圖:
沒有辦法做聚合或過濾,這方面本地的 profiler 工具比如 jprofiler、yourkits 就方便很多,有沒有辦法將兩者結(jié)合起來呢?
經(jīng)過分析發(fā)現(xiàn),async-profiler 支持 jfr (Java Flight Recorder) 格式輸出,jprofiler 也支持打開 jfr 快照,成了!具體操作步驟如下:
啟動 arthas 之后,執(zhí)行以下采樣命令:
profiler start -f /home/admin/yourAppName/target/arthas-output/%t.jfr -d 180
%t 表示當(dāng)前時間,-d 后面是采樣秒數(shù)。
可以用 oss 倒騰,或者 szrz 等其他途徑倒騰到本地。
在做性能分析時我們常常想要找出:是誰在調(diào)用我,是誰調(diào)用我最多。下面舉例介紹怎么做的。
使用 jprofiler 打開 jfr 文件,選擇 Open a snapshot, 打開之后選擇 CPU views。
View -> Find 查找要分析的類和方法,然后選擇 Analyze -> Calculate Backtraces to Selected Method:
修改 Summation mode 為 Total times,即可看到這個方法被哪些上游調(diào)用到,調(diào)用量和占比。
看完上述內(nèi)容,你們掌握如何使用arthas+jprofiler做復(fù)雜鏈路分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!