Golang: Profiling

7th December 2021 at 11:29am

Go 自带了好用的 profiling 工具链。采样可以通过标准库的 runtime/pprofnet/http/pprof。分析和展示可以通过 go tool pprof 命令来执行。

通过 URL 采集:

wget http://localhost:8080/debug/pprof/heap
wget http://localhost:8080/debug/pprof/profile?seconds=30
wget http://localhost:8080/debug/pprof/block
wget http://localhost:8080/debug/pprof/mutex
go tool pprof -http=localhost:2313 <file>

wget -O trace.out http://localhost:8080/debug/pprof/trace?seconds=5
go tool trace -http=localhost:2313 trace.out

参考材料

  1. DataDog/go-profiler-notes:还没读,感觉很不错
  2. 官方 pprof blog
  3. pprof 的 文档
  4. Profiling Go programs with pprof

TOC