arthas
arthas copied to clipboard
使用后台 trace 后,内存一直上涨,导致系统频繁 GC 和响应慢
- [x] 我已经在 issues 里搜索,没有重复的issue。
环境信息
-
arthas-boot.jar
或者as.sh
的版本: 3.6.7 - Arthas 版本: 3.6.7
- 操作系统版本: Linux 3.10.0-1127.19.1.el7.x86_64, CentOS Linux release 7.8.2003 (Core)
- 目标进程的JVM版本: 1.8
- 执行
arthas-boot
的版本: 3.6.7
重现问题的步骤
我先描述下事情的经过:
- 起初我是想要排查公司内部慢接口,所以我在目标进程上使用 后台 的方式 trace 了一个 xxx 类的 xxx 方法(大概 17点左右)
- 然后过了两个小时我通过查看后台重定向的日志文件,定位到了具体的慢方法(Es 的模板搜索)
- 然后我在进入这个 ES 模板搜索方法,最终后台 trace 的是
co.elastic.clients.transport.rest_client.RestClientTransport:performRequest()
这个方法,-n 我用的是 500 (大概 19点50左右) - 之后我下班了,第二天早上系统频繁告警(降级超时),我发现是内存占用 90%多 了,我查看该服务的 JVM 内存趋势发现
内存有上涨趋势的时间点和我执行第二次后台 trace 的时间点相同(19点55左右)
最后我是通过退出这个后台 trace 以及重启应用来解决的,重启完之后问题解决,内存回到 60%左右
我这个不是传统的使用问题,请 Arthas 官方给点思路,是我使用的姿势有问题吗? 感谢感谢
trace命令牵涉到字节码增强,一般情况下不重启是没有办法还原的。https://github.com/alibaba/arthas/issues/597
服务性能优化遇到同样问题,可以如何解决呢