arthas-boot.jar 或者 as.sh 的版本: 3.3.9arthas-boot的版本: 3.3.9线上机器cpu维持稳定

实际运行结果,最好有详细的日志,异常栈。尽量贴文本。
没有异常信息,就是CPU从 39% 突然上升到 300%
虽然没法直接回答你的问题,但是我有几个建议。
最后 trace 有性能损耗肯定是无法避免的,此处 cpu 上升是否考虑到了流量或者定时任务等造成的影响?
虽然没法直接回答你的问题,但是我有几个建议。
- '1==1' 的判断此处是无用的吧,可以删除
- --skipJDKMethod false,此处 jdk 的 method 在链路中重要么 ,不重要可以设置为 true,堆栈跟踪的复杂度会小点
- 你给出的信息实在有限,比如你可以给出你 trace 的函数中执行的是什么逻辑,或者相似的代码段,方便调查者复现问题
最后 trace 有性能损耗肯定是无法避免的,此处 cpu 上升是否考虑到了流量或者定时任务等造成的影响?
感觉也是,他没有任何日志,只是说CPU陡增,这个感觉和业务有很大关系
试下加上这两个参数,再看下日志: -XX:+PrintCompilation , -XX:TraceRedefineClasses=1
另外,试下在启动时就配置上 arthas agent,再试下 trace命令,看下CPU上升的结果是否会变小。
@EternalHao trace/watch 等命令增强class后,导致原来的JIT编译失效,需要重新编译,会导致CPU瞬间上升,但应该持续时间不长。从观察的数据来看,CPU变化的规律是怎么样? 可以使用一些工具生成CPU使用率的图表。
提交了一个改进dashboard的PR(https://github.com/alibaba/arthas/pull/1501) ,可以统计JVM内部线程(包括JIT / gc等线程)的CPU时间,可以测试一下。
dashboard -i 1000 。dashboard命令也可以输出到文件中,方便查看变化历史: dashboard -i 1000 > /tmp/xxx-dashboard.txt