Go 自带了好用的 profiling 工具链。采样可以通过标准库的 runtime/pprof 或 net/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
参考材料
- DataDog/go-profiler-notes:还没读,感觉很不错
- 官方 pprof blog
- pprof 的 文档
- Profiling Go programs with pprof