Arthas: 使用trace 命令导致 cpu使用率从39% 上升到 300%

Created on 19 Aug 2020  ·  4Comments  ·  Source: alibaba/arthas

  • [ ] 我已经在 issues 里搜索,没有重复的issue。

环境信息

  • arthas-boot.jar 或者 as.sh 的版本: 3.3.9
  • Arthas 版本: 3.3.9
  • 操作系统版本:
    >Linux version 3.10.0-957.21.3.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36)(GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019
  • 目标进程的JVM版本:
    >java version "1.8.0_144"
    >Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    >Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
  • 执行arthas-boot的版本: 3.3.9

重现问题的步骤

  1. trace XXXX xxx -n 5 '1==1' --skipJDKMethod false(使用插件生成)
  2. cpu 从39% 上升到 300%

期望的结果

线上机器cpu维持稳定

实际运行的结果

image

实际运行结果,最好有详细的日志,异常栈。尽量贴文本。

没有异常信息,就是CPU从 39% 突然上升到 300%
question-answered

All 4 comments

虽然没法直接回答你的问题,但是我有几个建议。

  1. '1==1' 的判断此处是无用的吧,可以删除
  2. --skipJDKMethod false,此处 jdk 的 method 在链路中重要么 ,不重要可以设置为 true,堆栈跟踪的复杂度会小点
  3. 你给出的信息实在有限,比如你可以给出你 trace 的函数中执行的是什么逻辑,或者相似的代码段,方便调查者复现问题

最后 trace 有性能损耗肯定是无法避免的,此处 cpu 上升是否考虑到了流量或者定时任务等造成的影响?

虽然没法直接回答你的问题,但是我有几个建议。

  1. '1==1' 的判断此处是无用的吧,可以删除
  2. --skipJDKMethod false,此处 jdk 的 method 在链路中重要么 ,不重要可以设置为 true,堆栈跟踪的复杂度会小点
  3. 你给出的信息实在有限,比如你可以给出你 trace 的函数中执行的是什么逻辑,或者相似的代码段,方便调查者复现问题

最后 trace 有性能损耗肯定是无法避免的,此处 cpu 上升是否考虑到了流量或者定时任务等造成的影响?

感觉也是,他没有任何日志,只是说CPU陡增,这个感觉和业务有很大关系

试下加上这两个参数,再看下日志: -XX:+PrintCompilation , -XX:TraceRedefineClasses=1

另外,试下在启动时就配置上 arthas agent,再试下 trace命令,看下CPU上升的结果是否会变小。

https://arthas.aliyun.com/doc/agent.html

@EternalHao trace/watch 等命令增强class后,导致原来的JIT编译失效,需要重新编译,会导致CPU瞬间上升,但应该持续时间不长。从观察的数据来看,CPU变化的规律是怎么样? 可以使用一些工具生成CPU使用率的图表。

提交了一个改进dashboard的PR(https://github.com/alibaba/arthas/pull/1501) ,可以统计JVM内部线程(包括JIT / gc等线程)的CPU时间,可以测试一下。

  • 先打开一个dashboard观察: dashboard -i 1000 。dashboard命令也可以输出到文件中,方便查看变化历史: dashboard -i 1000 > /tmp/xxx-dashboard.txt
  • 然后另外打开一个shell, trace 方法,看一下dashboard的变化。
Was this page helpful?
0 / 5 - 0 ratings

Related issues

lanshiqin picture lanshiqin  ·  7Comments

hengyunabc picture hengyunabc  ·  4Comments

joey-happy picture joey-happy  ·  3Comments

wenbeicai picture wenbeicai  ·  5Comments

xiuqianli1996 picture xiuqianli1996  ·  4Comments