您好,登錄后才能下訂單哦!
這篇文章主要介紹“調查線上接口超時報警的方法步驟”,在日常操作中,相信很多人在調查線上接口超時報警的方法步驟問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”調查線上接口超時報警的方法步驟”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
常用的命令包括 dashboard 、 thread -n、watch、trace 、 tt 等命令。
trace: 可以實時輸出各個子調用的執行時間, 輸入參數,返回值,是否該調用有異常,可以通過 trace -h 查看具體參數含義 tt: 將某一次耗時調用提取,然后重放,可以通過 tt -h 查看具體參數含義
trace命令輸出耗時超過 900 毫秒 的調用
trace com.kuaikan.comicbuy.repository.impl.ComicBuyRepositoryImpl getAllComicOrderFromDB '#cost>900' //查看耗時的調用路徑 watch com.kuaikan.comicbuy.dao.comicbuy.ComicOrderMapper getHadPurchasedComicNumByTopicId {params,returnObj} -x 2 '#cost>10' //獲取具體耗時的入參
輸出結果:
arthas@25316]$ trace com.kuaikan.comicbuy.repository.impl.ComicBuyRepositoryImpl getAllComicOrderFromDB '#cost>900' Press Q or Ctrl+C to abort. Affect(class-cnt:2 , method-cnt:1) cost in 786 ms. `---ts=2020-03-27 14:08:28;thread_name=DubboServerHandler-10.66.2.100:20893-thread-380;id=344;is_daemon=true;priority=5;TCCL=org.springframework.boot.loader.LaunchedURLClassLoader@533377b `---[954.270866ms] com.kuaikan.comicbuy.repository.impl.ComicBuyRepositoryImpl:getAllComicOrderFromDB() +---[0.010746ms] com.kuaikan.comicbuy.bean.ComicOrder:getTableNameByUserId() #376 // 代碼里面是在循環中執行的ComicOrderMapper:getComicOrderByUserId, // count=18表示循環的次數,total是總的執行時間,min是循環中最小的執行時間,max是最大執行時間。 +---[min=3.061773ms,max=272.769328ms,total=854.625477ms,count=18] com.kuaikan.comicbuy.dao.comicbuy.ComicOrderMapper:getComicOrderByUserId() #382 +---[min=0.001283ms,max=0.006587ms,total=0.036144ms,count=17] com.google.common.collect.Iterables:getLast() #383 +---[min=0.001431ms,max=0.003022ms,total=0.032525ms,count=17] com.kuaikan.comicbuy.bean.ComicOrder:getId() #383 +---[0.001445ms] com.google.common.collect.Lists:partition() #395 +---[2.349703ms] com.kuaikan.comicbuy.dao.comicbuy.ComicOrderMapper:getComicOrderBatchIdsList() #396 +---[min=2.27E-4ms,max=0.479048ms,total=7.025685ms,count=6736] com.kuaikan.comicbuy.bean.ComicOrder:getProductType() #402 `---[min=8.2E-5ms,max=0.150606ms,total=5.636961ms,count=6736] com.kuaikan.comicbuy.bean.ComicOrder:getProductType() #403
這一步的目的是為了判斷,耗時調用是否和特定輸入參數有關系 tt命令輸出耗時超過 500毫秒 的調用
tt -t com.kuaikan.comicbuy.repository.impl.ComicBuyRepositoryImpl getAllComicOrderFromDB '#cost>500'
輸出結果:
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD ------------------------------------------------------------------------------------------------------------------------------ 1014 2020-03-27 14:40: 576.2674 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 37 15 1015 2020-03-27 14:40: 852.3366 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 45 85 1016 2020-03-27 14:41: 894.5568 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 08 44 1017 2020-03-27 14:41: 612.3478 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 30 68 1018 2020-03-27 14:42: 1162.434 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 00 85 1019 2020-03-27 14:42: 1194.843 true false 0x79476a4e ComicBuyRepositoryImpl getAllComicOrderFromDB 00 248
INDEX = 1018 的調用執行了1162.434毫秒,這個肯定是已經報RPC超時了.
查看某一個的詳細 tt -i 1018
重放這個請求: tt -i 1018 -p
到此,關于“調查線上接口超時報警的方法步驟”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。