Skip to content

Arthas 3.4.2 Release Notes

gongdewei edited this page Sep 23, 2020 · 2 revisions

Issues: https://github.com/alibaba/arthas/milestone/23?closed=1

Releases: https://github.com/alibaba/arthas/releases/tag/arthas-all-3.4.2

改进 dashboard/thread 命令CPU时间采样及统计方法

原dashboard命令的一些问题:

  • 线程%CPU只是一个比例,不能表明线程运行的繁忙程度。即使JVM进程很空闲,仍然可以看到某些线程%CPU很高,失去参考意义。
  • 取样计算逻辑不够准确,每次只统计100ms的线程CPU,而等待的间隔时间(默认5s)并没有计算进去。

dashboard命令改进项:

  • 线程%CPU 改为与Linux 命令 top -H -p <pid>类似的统计方式,线程%CPU的大小则表明其工作繁忙程度。当JVM进程比较空闲时,看到的线程%CPU也会很低(小于%1)。
  • 改进取样逻辑,计算两次取样数据的增量,等待的间隔时间会被计算进去。
  • 增加统计JVM内部线程,更全面观测JVM的整体运行状况,可以快速识别GC繁忙、JIT编译繁忙的场景。

新dashboard截图: image

修复Trace大方法可能出现Metaspace OOM的问题

  • 优化类增强逻辑,生成的新类复制原始类的constant pool,避免JVM retransform classes 处理过程触发扩展ldc指令频繁复制method对象而激增内存(影响版本:3.3.0 ~ 3.4.1版本)。

改进Arthas stop逻辑,修复stop后不能释放的问题

  • 修复stop后不能释放ArthasClassloader的问题
  • 修复http端口启动失败后,导致arthas异常的问题