利用Arthas排查接口慢的情況

工作中遇到這么一個


image.png

所以就準備去排查接口的調(diào)用情況。經(jīng)過了解發(fā)現(xiàn)Arthas可以幫助我排查接口緩慢的情況;

Arthas地址:https://github.com/alibaba/arthas/blob/master/README_CN.md#arthas

Arthas 是Alibaba開源的Java診斷工具,深受開發(fā)者喜愛。

當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:

這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯了?
遇到問題無法在線上 debug,難道只能通過加日志再重新發(fā)布嗎?
線上遇到某個用戶的數(shù)據(jù)處理有問題,但線上同樣無法 debug,線下無法重現(xiàn)!
是否有一個全局視角來查看系統(tǒng)的運行狀況?
有什么辦法可以監(jiān)控到JVM的實時運行狀態(tài)?
怎么快速定位應用的熱點,生成火焰圖?
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

快速開始

使用arthas-boot(推薦)

下載arthas-boot.jar,然后用java -jar的方式啟動:

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

打印幫助信息:

java -jar arthas-boot.jar -h
  • 如果下載速度比較慢,可以使用aliyun的鏡像:java -jar arthas-boot.jar --repo-mirror aliyun --use-http

使用as.sh

Arthas 支持在 Linux/Unix/Mac 等平臺上一鍵安裝,請復制以下內(nèi)容,并粘貼到命令行中,敲 回車 執(zhí)行即可:

curl -L https://arthas.aliyun.com/install.sh | sh

上述命令會下載啟動腳本文件 as.sh 到當前目錄,你可以放在任何地方或?qū)⑵浼尤氲?$PATH 中。

直接在shell下面執(zhí)行./as.sh,就會進入交互界面。

也可以執(zhí)行./as.sh -h來獲取更多參數(shù)信息。

具體使用

安裝之后執(zhí)行

./as.sh

會列出所有檢測到的進程


image.png

選擇你要跟蹤的服務,比如我要跟蹤leimingtech-search-api這個服務。那么輸入9然后回車

然后就是啟動成功


image.png

然后就是使用trace命令
trace命令的使用文檔:https://arthas.aliyun.com/doc/trace

image.png

命令

trace  類全稱  + 空格  + 方法名

在我的項目中就是這樣的:

trace com.leimingtech.front.modules.service.impl.GoodsSearchServiceImpl collectBillsReduceGoods

運行結果:


image.png

可以看到箭頭的地方就是這次接口調(diào)用中耗時比較久的方法。最后在去定位這個方法的調(diào)用情況;

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容