curl循环监控_阿里巴巴开源性能监控神器Arthas
線上經常遇到MQ消費速度忽高忽低,但是線下測試卻沒有問題。那會是哪一個問題引起的呢?因為影響MQ消費速度的因素太多了,如下因素只要任何一種出現問題,就會影響MQ消費速度。
JVM內存過高,一直在Full GC。
Redis連接堵塞,導致Redis操作一直延遲。
第三方接口響應時間過長。
服務器cpu/帶寬/IO受限。
Mysql出現慢sql,查詢過慢。
程序本身問題(例如異常循環)。
解決方案:
為了排除具體原因,但是線上又不能進行錯誤調試,所以博主只能用最笨的辦法,每一行關鍵代碼,都寫上log日志,然后通過輸出每一行代碼的執行時間,來確定到底是哪里出錯。
方案問題:
但是打印日志的方式需要修改代碼,有一定的風險,修改完又需要重新發布才能生效。最重要的是,MQ消費需要跑大量的數據,大部分數據都是正常的,少部分數據是異常的,針對于這種情況,打印日志的方式就很難發現問題點。
尋求更優解:
那到底有沒有這么一個工具可以不用修改任何代碼,就可以排查線上問題呢?今天就給大家推送一款神器Arthas,這是阿里巴巴開源的一款性能監控工具。
當你遇到以下類似問題而束手無策時,Arthas 可以幫助你解決:
這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
是否有一個全局視角來查看系統的運行狀況?
有什么辦法可以監控到JVM的實時運行狀態?
Arthas入門:
Arthas本質其實就是一個jar包,所以只需要去官網下載對應的jar就可以了,然后通過java -jar的方式啟動,例如:
curl -O https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar
啟動成功之后可以看到Arthas啟動標志,如下所示:
[INFO] Try to attach process 71560[INFO] Attach process 71560 success.
[INFO] arthas-client connect 127.0.0.1 3658
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'| .-. || '--'.' | | | .--. || .-. |`. `-.| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
wiki: https://alibaba.github.io/arthas
version: 3.0.5.20181127201536
pid: 71560
time: 2018-11-28 19:16:24
$
Arthas也提供了Docker模式下的監控,我們只需要在DockerFile中增加如下代碼,就可以嵌入Arthas了。
# copy arthasCOPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
MQ消費過慢終極解決方案:
針對于上面提出的問題,MQ消費速度過慢,我們可以采用trace命令來解決,例如我們可以輸入:
trace -j com.fourkmiles.advertisement.service.impl.CampaignsV2ApiMethodServicelmpl getSearchTermReport '#cost > 1000'這個命令的意思是,CampaignsV2ApiMethodServicelmpl類的getSearchTermReport方法中,打印出執行時間超過1000的方法。
如下圖所示,它可以打印這個方法中每一行代碼所花費的時間。
它還可以監測:線程、jvm、方法、方法執行路徑、服務運行情況、反編譯代碼、獲取方法返回值等功能,Arthas都給我們提供了方便的命令來查詢這些指標。
總結:
總體來說Arthas功能還是非常強大的,對應線上bug排查可謂雪中送炭。但是Arthas本質還是一個jar服務,所以對服務器是有一定性能損耗的,在不監控的時候一定要關閉Arthas對應的服務。
官網地址:https://alibaba.github.io/arthas/install-detail.html
林老師帶你學編程
微信號 : lzqcode
個人網站:wolzq.com
▇?掃碼關注我們
總結
以上是生活随笔為你收集整理的curl循环监控_阿里巴巴开源性能监控神器Arthas的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asrock是什么牌子的(ASRock)
- 下一篇: all方法 手写promise_实现Pr