arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析
背景
Arthas是阿里巴巴開源的應(yīng)用診斷利器,提供了profiler命令,可以生成熱點(diǎn)火焰圖。通過采樣錄制調(diào)用鏈路來做性能分析,極大提升了線上排查性能問題的效率。
但是有一個(gè)問題,當(dāng)async-profiler全量采樣導(dǎo)出的svg文件太大時(shí),想要找到關(guān)鍵的調(diào)用點(diǎn),就非常困難。
比如下圖:

沒有辦法做聚合或過濾,這方面本地的profiler工具比如jprofiler、yourkits就方便很多,有沒有辦法將兩者結(jié)合起來呢?
經(jīng)過分析發(fā)現(xiàn),async-profiler支持jfr (Java Flight Recorder)格式輸出,jprofiler也支持打開jfr快照,成了!具體操作步驟如下:
1. arthas采樣生成jfr文件
啟動(dòng)arthas之后,執(zhí)行以下采樣命令:
profiler start -f /home/admin/yourAppName/target/arthas-output/%t.jfr -d 180
%t 表示當(dāng)前時(shí)間,-d 后面是采樣秒數(shù)
更多參數(shù)參見:
https://arthas.aliyun.com/doc/profiler.html
https://github.com/jvm-profiling-tools/async-profiler/blob/v1.6/src/arguments.cpp
2. 下載jfr到本地
可以用oss倒騰,或者szrz等其他途徑倒騰到本地。
3. jprofiler分析
在做性能分析時(shí)我們常常想要找出:是誰在調(diào)用我,是誰調(diào)用我最多。下面舉例介紹怎么做的。
3.1 打開快照
使用jprofiler打開jfr文件,選擇Open a snapshot, 打開之后選擇CPU views

3.2 反向分析
View -> Find 查找要分析的類和方法,然后選擇 Analyze -> Calculate Backtraces to Selected Method

3.3 分析結(jié)果
修改Summation mode 為Total times,即可看到這個(gè)方法被哪些上游調(diào)用到,調(diào)用量和占比

總結(jié)
- 通過Arthas profiler命令生成
jfr文件; - 在本地通過
jprofiler來分析jfr文件,定位誰在調(diào)用我; - 運(yùn)用之妙,存乎一心。工具的互相結(jié)合,可以產(chǎn)生奇妙的化學(xué)反應(yīng)。
以上就是arthas jprofiler做復(fù)雜鏈路的調(diào)用分析的詳細(xì)內(nèi)容,更多關(guān)于arthas jprofiler復(fù)雜鏈路調(diào)用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn))
本篇文章主要介紹了spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解
這篇文章主要介紹了基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
SpringBoot使用自動(dòng)配置xxxAutoConfiguration
這篇文章介紹了SpringBoot自動(dòng)配置xxxAutoConfiguration的使用方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Java練手小項(xiàng)目實(shí)現(xiàn)一個(gè)項(xiàng)目管理系統(tǒng)
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)項(xiàng)目管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-10-10

