Golang之pprof使用
1、配置
import?_ "net/http/pprof"
go func() {
????????http.ListenAndServe("0.0.0.0:8899", nil)
}()
訪問http://127.0.0.1:8899/debug/pprof/
2、采樣頻率
3、下載profile的接口
1、/debug/pprof/profile?seconds=30:訪問這個鏈接會自動進行 CPU profiling,持續 30s,并生成一個文件供下載
2、/debug/pprof/heap: 訪問這個鏈接會得到一個內存 Profiling 結果的文件。內存顯示默認的Type是inuse_space,即常駐內存。與之對應的是alloc_objects,表示臨時分配的內存。
3、/debug/pprof/block:block Profiling的路徑
4、/debug/pprof/goroutine:運行的 goroutines 列表,以及調用關系
5、/debug/pprof/trace?seconds=5:查看各個goroutine執行耗時情況,持續5s,包括網絡等待耗時、同步耗時、GC耗時等。
4、可視化profile的命令
go tool pprof -http=":8081" --nodefration=0.05?goroutine(profile文件名)
表示如果調用的子函數使用的 CPU、memory 不超過 5%,就忽略它,不顯示在圖片中。
?
總結
以上是生活随笔為你收集整理的Golang之pprof使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻拢慢捻,微服务熔断大总管
- 下一篇: k8s之kubebuilder简单理解