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:訪問這個(gè)鏈接會(huì)自動(dòng)進(jìn)行 CPU profiling,持續(xù) 30s,并生成一個(gè)文件供下載
2、/debug/pprof/heap: 訪問這個(gè)鏈接會(huì)得到一個(gè)內(nèi)存 Profiling 結(jié)果的文件。內(nèi)存顯示默認(rèn)的Type是inuse_space,即常駐內(nèi)存。與之對(duì)應(yīng)的是alloc_objects,表示臨時(shí)分配的內(nèi)存。
3、/debug/pprof/block:block Profiling的路徑
4、/debug/pprof/goroutine:運(yùn)行的 goroutines 列表,以及調(diào)用關(guān)系
5、/debug/pprof/trace?seconds=5:查看各個(gè)goroutine執(zhí)行耗時(shí)情況,持續(xù)5s,包括網(wǎng)絡(luò)等待耗時(shí)、同步耗時(shí)、GC耗時(shí)等。
4、可視化profile的命令
go tool pprof -http=":8081" --nodefration=0.05?goroutine(profile文件名)
表示如果調(diào)用的子函數(shù)使用的 CPU、memory 不超過 5%,就忽略它,不顯示在圖片中。
?
總結(jié)
以上是生活随笔為你收集整理的Golang之pprof使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻拢慢捻,微服务熔断大总管
- 下一篇: k8s之kubebuilder简单理解