arthas icon indicating copy to clipboard operation
arthas copied to clipboard

使用后台 trace 后,内存一直上涨,导致系统频繁 GC 和响应慢

Open kaixinbaba opened this issue 1 year ago • 2 comments

  • [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左右) WeChatWorkScreenshot_972f552b-43d1-42f9-bcdd-efc4c4bc6bd3

最后我是通过退出这个后台 trace 以及重启应用来解决的,重启完之后问题解决,内存回到 60%左右

我这个不是传统的使用问题,请 Arthas 官方给点思路,是我使用的姿势有问题吗? 感谢感谢

kaixinbaba avatar Dec 05 '23 02:12 kaixinbaba

trace命令牵涉到字节码增强,一般情况下不重启是没有办法还原的。https://github.com/alibaba/arthas/issues/597

sirius19 avatar Feb 01 '24 05:02 sirius19

服务性能优化遇到同样问题,可以如何解决呢

WindRed avatar Jun 15 '24 16:06 WindRed