zhoudaiyu
V2EX  ›  Java

在高负载的生产环境下开 arthas 来 debug 会对性能产生很大损失吗?

By zhoudaiyu at 2023 年 4 月 28 日 · 3510 次点击
以前随便 debug ,直到有个架构师说会有较大的影响,甚至会让程序夯死,导致业务 Pod 探活接口访问失败从而导致重启,现在有点害怕了。
10 条回复  •  2023-04-29 21:12:54 +08:00
perfectlife
   1
perfectlife  
   2023 年 4 月 28 日
都高负载了 你不开 arthas 一样会导致业务 Pod 探活接口访问失败从而导致重启,况且不用工具调试怎么去找到高负载的问题
ysweics
   2
ysweics  
   2023 年 4 月 28 日   ❤️ 1
qoo2019
   3
qoo2019  
   2023 年 4 月 28 日
@perfectlife 高负载,又不是负载异常
documentzhangx66
   4
documentzhangx66  
   2023 年 4 月 28 日
在生产环境下调试的正确姿势是日志分级与全链路日志,而不是使用 debug 工具。
WillingXyz
   5
WillingXyz  
   2023 年 4 月 28 日
确实存在,遇到过
hengyunabc
   6
hengyunabc  
   2023 年 4 月 28 日
😂,开发者来回答下这个。
本质上是 Arthas 的能力太强,理论上你可以随意暴力搜索对象,随意函数调用。这把锋利的工具产生的后果取决于使用的人。
上面提到的 issue 有很清楚的说明: https://github.com/alibaba/arthas/issues/44#issuecomment-569007710
zhoudaiyu
   7
zhoudaiyu  
OP
   2023 年 4 月 28 日
@perfectlife 负载高而已,属于接近满载
@ysweics 这个我看过啦,但是已经迭代了 4 年了,不知道有优化没
@documentzhangx66 有时候性能问题,必须得用工具 debug
@WillingXyz CPU 不够用了吧,应用变慢了
@hengyunabc 大佬,你好,我觉得等下次压测的时候试一把,看看到底有多大影响😁
u5
   8
u5  
   2023 年 4 月 28 日
都高负载了,重启前排查一下也不是不行。 我有一次高负载,Arthas 都进不去。
perfectlife
   9
perfectlife  
   2023 年 4 月 28 日
@qoo2019 高负载时候就绪探针探测失败很常见
Aresxue
   10
Aresxue  
   2023 年 4 月 29 日
看 debug 做了什么,一般来说 trace 和 stack 是相对安全一些,watch 的话要小心一些如果 watct 的出入参很大会对系统造成一定的压力,建议书写表达式只获取自己关心的值而不是所以出入参,尤其是一些调用量很大的函数,建议使用-n 把 watch 次数限制的比较小,比较极端的情况下是会造成程序的卡死的,但一般情况下是不会的,自己根据业务核心程度和业务量判断一下,还有提醒各位小伙伴操作完以后记得 stop 啊,我发现 90%的小伙伴都没有 stop 的习惯。
© 2026 V2EX · 39ms · 3.9.8.5