微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在生产中使用golang pprof而不影响性能? 为什么?

如何解决是否可以在生产中使用golang pprof而不影响性能? 为什么?

我是pprof工具的新手,并且想知道是否可以继续在生产环境中运行它。从我所看到的文章来看,这似乎还可以,而且很标准,但是我对这不会影响性能感到困惑,因为它每秒进行一次N次采样,而这又不会导致性能下降。

解决方法

Jaana Dogan确实在她的文章“ Continuous Profiling of Go programs”中说过

生产中的配置文件

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

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

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

为什么?

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

  • 调试性能问题仅在生产环境中可见。
  • 了解CPU使用率以减少计费。
  • 了解竞争在哪里累积和优化。
  • 了解新版本的影响,例如看到金丝雀和生产之间的区别。
  • 通过将分布的踪迹与概要分析样本相关联来丰富它们,从而了解延迟的根本原因。

因此,如果出于正确的原因使用pprof,是的,可以将其投入生产。
但是对于基本监视来说,该系统就足够了。

Continuous Profiling and Go在“ Vladimir Varankin”中指出

根据公司基础架构的状态,应用程序流程中的“意外” HTTP服务器可能会引起系统运营部门的疑问;)

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。