1.是要等到线上有性能问题的时候才开启吗?那有问题要调试时岂不是要改代码重启服务
2.线上开启对服务有影响吗?
1
janxin 2019-04-11 23:06:43 +08:00 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 2019-04-11 23:20:42 +08:00
开起来吧,多部署几个实例问题不大
|
3
hheedat 2019-04-12 17:28:50 +08:00
线上可以开启,用 http pprof,可以有一个监控程序定时获取线上的 profile 存档,好在异常的时候查询。有些 profile 只有在你调用的时候才会影响性能,有些会一直影响,你自己研究一下吧。
|