1.安裝arthas
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
2.啟動jar
java -jar arthas-boot.jar
3.出現(xiàn)所有可監(jiān)控的進程,輸入要監(jiān)控的進程,回車
-
執(zhí)行監(jiān)控進程后回官,報錯:【沒報錯滥朱,直接看4】
image.png
[INFO] Start download arthas from remote server: https://arthas.aliyun.com/download/3.6.7?mirror=aliyun
[INFO] File size: 12.92 MB, downloaded size: 9.60 MB, downloading ...
[INFO] Download arthas success.
[INFO] arthas home: /Users/cici/.arthas/lib/3.6.7/arthas
[INFO] Try to attach process 13160
Exception in thread "main" java.lang.IllegalArgumentException: Can not find tools.jar under java home: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home, please try to start arthas-boot with full path java. Such as /opt/jdk/bin/java -jar arthas-boot.jar
at com.taobao.arthas.boot.ProcessUtils.findJavaHome(ProcessUtils.java:222)
at com.taobao.arthas.boot.ProcessUtils.startArthasCore(ProcessUtils.java:233)
at com.taobao.arthas.boot.Bootstrap.main(Bootstrap.java:586)
解決辦法:
執(zhí)行:vim ~/.bash_profile
添加以下內(nèi)容:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
執(zhí)行:source ~/.bash_profile
-
重新啟動jar碎紊,成功
image.png
4. 啟動接口觀察
trace com.xx.assetsinnovation.scene.service.impl.xxxServiceImpl queryById -n 50 --skipJDKMethod false '#cost > 200'
- 針對部分接口骡技,想進行時間上的過濾
trace com.xx.assetsinnovation.scene.service.impl.xxxServiceImpl queryById -n 5 --skipJDKMethod false '#cost > 200'
5.查看監(jiān)控的結(jié)果
-
頭部位置,說明該接口耗時11s
image.png -
發(fā)現(xiàn)紅色圈起來的部分就是耗時占比嚴重的地方榛斯,針對性的去優(yōu)化
image.png
image.png
6. 接口性能達標蔓钟,但是每次并發(fā)就是上不去
針對權限校驗進行檢查過濾
trace com.bantu.platform.sso.web.client.cors.CorsSsoAgentFilter doFilterInternal -n 5000 --skipJDKMethod false '#cost > 300'
-
其中還碰到過arthas監(jiān)控的服務端口不可用的情況
image.png
java -jar arthas-boot.jar --telnet-port 9998 --http-port 9999
7.監(jiān)控客戶端 http://127.0.0.1:8563/
除了在命令行查看外永票,還可以通過瀏覽器訪問http://127.0.0.1:8563/查看。如下圖:可以直接操作相關的命令參數(shù)
8.退出
看見那個$符號滥沫,就是打開進入了監(jiān)控客戶端侣集。可以使用quit(退出當前客戶端)兰绣、stop\shutdown(關閉arthas服務端,并退出所有客戶端)
9.常用命令
https://blog.csdn.net/huo065000/article/details/123231411
10.快速獲取arthas命令
arthas的命令較多世分,如果每次都需要自己
idea安裝插件 arthas idea