java性能分析 arthas 使用教程

一、arthas简介

   Arthas 是一个强大的 Java 诊断工具,由阿里巴巴开源。它专门用于分析和诊断 Java 应用程序运行时的性能问题和行为,尤其适合线上问题排查。Arthas 提供交互式的 CLI 界面,开发者可以在不中断服务的情况下实时查看和修改 Java 应用程序的内部状态。

二、Arthas 的核心功能

  1. 查看运行时类信息

    • 支持查看类的加载器、类的加载信息等。
    • 支持反编译 class 文件,查看字节码增强后的代码。
  2. 方法调用监控

    • 实时监控指定类的方法调用,包括参数、返回值、异常等信息。
    • 例如,通过 watchtrace 命令可以看到方法执行路径和耗时分析。
  3. 线程分析

    • 支持分析线程堆栈,查看线程的运行状态(如阻塞、运行、等待等)。
    • 能够定位死锁线程、CPU 使用率高的线程等问题。
  4. 实时性能诊断

    • 支持实时观察内存、线程、GC、类加载、CPU 使用情况。
    • 通过 dashboard 命令,快速查看系统性能概览。
  5. 动态调试

    • 支持在运行时修改代码逻辑,无需重启应用。
    • 例如,可以通过 ognl 命令动态执行代码,直接观察效果。
  6. 方法拦截和跟踪

    • 可以拦截并修改方法调用,查看调用链详细信息。
    • trace 命令支持查看方法调用栈。
  7. 复杂表达式支持

    • 支持通过 OGNL 表达式直接操作对象,快速实现复杂调试需求。
  8. 日志增强

    • 在不重启应用的情况下,动态为方法添加日志,帮助排查问题。

三、 arthas下载

# 下载arthas jar包 
curl -O https://arthas.aliyun.com/arthas-boot.jar

四、启动服务 

java -jar arthas-boot.jar --target-ip 0.0.0.0

五、使用arthas

显示这个页面后,我们需要退出到容器到bash环境 

# 退出arthas终端
exit

# 获取arthas密码
cat  ~/logs/arthas/arthas.log | grep pass
2024-11-29 16:01:44 [arthas-binding-thread] ERROR c.t.a.core.server.ArthasBootstrap -Listening on 0.0.0.0 is very dangerous! External users can connect to your machine! No password is currently configured. Therefore, a default password is generated, and clients need to use the password to connect!
2024-11-29 16:01:44 [arthas-binding-thread] INFO  c.t.a.core.server.ArthasBootstrap -Generated arthas password: 3iGMvRbyUv34vHuowBrpi9bGTEt1AkkSsMZK1fifCF8yfO4R79ObzD1FuAxJfIwS

登陆web页面 访问http://10.53.1.170:3658/,如下

启动分析,需要执行一段时间

停止分析后将会生成一份火焰图文件

profiler stop --format flamegraph

六、查看火焰图

七、退出arthas

访问http://10.53.1.170:3658/  执行stop

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloud孙文波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值