首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
V2EX  ›  Go

关于 Go pprof 的疑问

  •  1
     
  •   Fitz · 243 天前 · 1228 次点击
    这是一个创建于 243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.是要等到线上有性能问题的时候才开启吗?那有问题要调试时岂不是要改代码重启服务
    2.线上开启对服务有影响吗?

    5 回复  |  直到 2019-04-18 14:35:09 +08:00
        1
    janxin   243 天前 via iPad   ♥ 2
    不是默认开启的,遇到性能问题的时候也未必能够及时开启。一般开启 pprof 会对线上有一定影响,要看性能退化程度,是否对线上服务造成直接影响进行综合判断。

    开启不需要修改代码,通过内置对应的工具帮助随时开启。https://golang.google.cn/pkg/net/http/pprof/ 是一个对 HTTP 服务非常有帮助的工具。不过我推荐另外一款 Google 开源的工具 https://github.com/google/gops,原因是不需要对 pprof 做一些安全防护,也更适配一些提供非 HTTP 的服务。

    另外多写 benchmark,在某些情况下的热路径下有奇效。Go 提供了非常丰富的标准工具,要多利用起来。
        2
    zhengxiaowai   243 天前
    开起来吧,多部署几个实例问题不大
        3
    hheedat   242 天前
    线上可以开启,用 http pprof,可以有一个监控程序定时获取线上的 profile 存档,好在异常的时候查询。有些 profile 只有在你调用的时候才会影响性能,有些会一直影响,你自己研究一下吧。
        4
    mornlight   236 天前
    @janxin #1 gops 有没有什么方便的办法搞出火焰图?只看到可以 gops pprof-cpu
        5
    janxin   236 天前
    @mornlight 这只是个入口,剩下的走 go 本身的火焰图或者其他的工具都 OK
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   974 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    ♥ Do have faith in what you're doing.