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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/936170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX