为了账号安全,请及时绑定邮箱和手机立即绑定

可以在生产中使用 golang pprof 而不影响性能吗?

可以在生产中使用 golang pprof 而不影响性能吗?

Go
一只名叫tom的猫 2022-07-04 10:36:22
我对这个pprof工具有点陌生,我想知道在生产中继续运行它是否可以。从我看到的文章来看,这似乎是好的和标准的,但是我很困惑这不会影响性能,因为它N每秒都会进行一次采样,以及为什么这不会导致性能下降。
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

Jaana Dogan在她的文章“ Go 程序的持续分析”中确实说过

生产中的分析

pprof 在生产中使用是安全的
我们的目标是为 CPU 和堆分配分析额外增加 5% 的开销

收集从单个实例每分钟发生 10 秒。如果您有一个 Kubernetes pod 的多个副本,我们会确保进行摊销收集。
例如,如果您有 10 个 pod 副本,则开销将为 0.5%。这使用户可以始终保持分析。

我们目前支持 Go 程序的 CPU、堆、互斥锁和线程配置文件。

为什么?

在解释如何在生产中使用分析器之前,解释一下为什么要在生产中进行分析会很有帮助。一些非常常见的情况是:

  • 调试性能问题仅在生产中可见。

  • 了解 CPU 使用率以减少计费。

  • 了解争用在何处累积和优化。

  • 了解新版本的影响,例如看到金丝雀和生产之间的区别。

  • 通过将它们与分析样本相关联来丰富您的分布式跟踪,以了解延迟的根本原因。

因此,如果您pprof出于正确的原因使用它,是的,您可以将其留在生产中。
但是对于基本监控,正如评论的那样,该系统就足够了。

正如Vladimir Varankin在“ Continuous Profiling and Go ”中所指出的那样

根据公司基础设施的状态,应用程序进程中的“意外”HTTP 服务器可能会向您的系统运营部门提出问题;)

同时,根据公司的特殊性质,访问生产应用程序中的某些内容(与应用程序的业务逻辑没有直接关系)的能力可能会引起安全部门的质疑;))我

因此,在启用此类功能时,开销并不是唯一要考虑的标准。


查看完整回答
反对 回复 2022-07-04
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信