日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

【arthas】使用arthas定位接口耗時問題、無日志情況下排查問題

作者:FindingKeys_wht 更新時間: 2022-07-13 編程語言

接口返回時間過長,一般會看日志來定位耗時步驟,如果沒有打日志,或者關(guān)鍵步驟日志打印的不如預(yù)期,則不好定位了。
此時可以借助arthas進行定位,其原理就是附加到指定的java進程,對關(guān)注的方法進行監(jiān)聽,對實時請求進行分析。

1.使用命令 ps -ef|grep 進程名 查看進程id和用戶
在這里插入圖片描述

2.啟動arthas并附加到進程
啟動arthas命令: /opt/****/jdk1.8.0_262/bin/java -jar /opt/arthas/arthas-boot.jar
arthas會將可以附加的進程都列出來,這里我們可以看到進程id 277648是第9個
在這里插入圖片描述
輸入9后回車,看到下圖的輸入光標就是附加成功了,arthas此時在等待用戶輸入監(jiān)聽命令,此例我們介紹trace和watch兩個命令,如果附加不成功,優(yōu)先考慮是否是因為用戶不對或其他權(quán)限問題
在這里插入圖片描述

Arthas命令trace使用

trace命令可以查看某個方法調(diào)用其他方法時的耗時。語法:trace 全類名 方法名(可以附帶一些參數(shù),具體可以查閱官方文檔)
在這里插入圖片描述然后就打樁成功,開始監(jiān)聽此方法的調(diào)用了,去操作頁面進行相關(guān)操作,可以看到操作一次,就會打印一次調(diào)用棧:
在這里插入圖片描述
注意:trace命令只會追蹤一層,所以看到耗時較多的方法后,如果還不足以分析出原因,需要調(diào)整trace語句為下一層的方法,進一步trace,直到最后分析出根因

Arthas命令watch使用

watch命令可以查看某個方法的入?yún)⒑头祷刂怠#ǘㄎ粏栴}卻苦于沒有打印日志的場景下可以用此方法)
語法:watch 全類名 方法名 參數(shù)(具體可以查閱官方文檔)
在這里插入圖片描述
圖例中帶了2個參數(shù)。解釋如下;
1.{params,returnObj} 表示同時打印入?yún)⒑头祷兀绻恍枰蛴》祷兀敲从胷eturnObj就可以了
2.-x 5 此例中返回的參數(shù)是個列表,且對象比較復(fù)雜,屬性和層次比較多,需要指定打印的深度,這里指定5就是從數(shù)組往對象結(jié)構(gòu)里打印5層的意思,設(shè)置太小了就看不到對象細節(jié)了。

原文鏈接:https://blog.csdn.net/wht_0217/article/details/125526883

欄目分類
最近更新