本文使用: Arthas 3.6.x
官方文档: http://arthas.gitee.io/
本地监控
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
docker内应用监控
docker exec -it ${containerId} /bin/bash -c "wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar"
监控代码执行
# 单个方法监控
trace --skipJDKMethod false com.lc.ibps.cloud.oauth.server.provider.UserProvider login
# 控制打印次数,默认6次
trace --skipJDKMethod false com.lc.ibps.cloud.oauth.server.provider.UserProvider login -n 20
# 多个类多个方法监控
trace --skipJDKMethod false -E com.lc.ibps.base.db.mybatis.MybatisTemplateProvider|org.apache.ibatis.session.defaults.DefaultSqlSession selectList|update|execute -n 1000
# 单个方法统计每次耗时
tt -t -E com.lc.ibps.base.db.mybatis.MybatisTemplateProvider execute
# 控制打印次数,默认3次
tt -t -E com.lc.ibps.base.db.mybatis.MybatisTemplateProvider execute -n 100
# # 多个类多个方法监控
tt -t -E com.lc.ibps.base.db.mybatis.MybatisTemplateProvider|org.apache.ibatis.session.defaults.DefaultSqlSession selectList|update|execute -n 1000
定位耗时较高的方法,分析该方法是否有提升空间
火焰图
profiler start --duration 360
分析火焰图,定位哪些代码消耗CPU较高,分析代码如何优化
文档更新时间: 2023-03-23 08:55 作者:Eddy