工具 pprof 使用總結

2021-10-01 15:10:42 字數 1809 閱讀 9725

pprof 使用總結

作用:cpu分析,按照一定的頻率監聽cpu暫存器使用情況。確定cpu週期花費時間的跟蹤位置。

記憶體分析,在應用程式進行堆分配時記錄堆疊跟蹤,用於監視當前和歷史記憶體使用情況,以及檢查記憶體洩漏。

阻塞分析,記錄 goroutine 阻塞等待同步(包括定時器通道)的位置

互斥鎖分析,報告互斥鎖的競爭情況

web方式

會出現以下資訊

/debug/pprof/

profiles:

0 block

5 goroutine

3 heap

0 mutex

9 threadcreate

full goroutine stack dump

終端操作

登入指令:

go tool pprof 127.0.0.1:9090/debug/pprof/profilecpu資訊

go tool pprof 127.0.0.1:9090/debug/pprof/heap記憶體資訊

預設型別:

-inuse_space:分析應用程式的常駐記憶體占用情況

-alloc_objects:分析應用程式的記憶體臨時分配情況

go tool pprof -alloc_objects 127.0.0.1:9090/debug/pprof/heap

go tool pprof 127.0.0.1:9090/debug/pprof/mutex鎖資訊

go tool pprof 127.0.0.1:9090/debug/pprof/goroutine協程資訊

終端引數意義:

flat:給定函式上執行耗時

flat%:同上的 cpu 執行耗時總比例

sum%:給定函式累積使用 cpu 總比例

cum:當前函式加上它之上的呼叫執行總耗時

cum%:同上的 cpu 執行耗時總比例

最後一行為函式名稱

開發中遇到了不少的問題,大多數是可以通過pprof分析cpu, heap圖來分析和解決的,配合perf top, strace ,可以統計syscall系統呼叫及stack的統計。對於有些tcp的狀態,我們會使用tcpdump來抓包分析。

go-torch 使用

安裝go get github.com/uber/go-torch

然後將flamegraph.pl所在的目錄拷貝到環境變數

執行指令:

-f cpu.svg 檢視cup佔比

/debug/pprof/heap --colors mem -f mem.svg 檢視記憶體佔比

golang 效能分析工具Pprof

pprof是golang程式乙個效能分析的工具,可以檢視堆疊 cpu資訊等 pprof有2個包 net http pprof以及runtime pprof 二者的關係 net http pprof包只是使用runtime pprof包來進行封裝了一下,並在http埠上暴露出來。假如你的go呈現是用h...

golang工具 二 PProf效能剖析

應用程式在執行時,總是會出現一些你意想不到的問題,例如 cpu使用率過高,記憶體不斷增大 疑似記憶體洩露 或者是goroutine數量不斷增加 goroutine洩露 那麼在這些問題出現時如何進行排查呢,這裡介紹pprof工具。pprof是什麼 pprof是析效能分析資料的工具,可以生成視覺化的文字...

pip 工具使用總結

所有的 python 開發者都清楚,pip 是官方推薦的包管理工具,在大多數開發者眼裡,pip 幾乎是 python 的標配。下面列舉pip操作常用的指令 windows系統,以numpy包為例 pip list 查詢已安裝的所有包 pip show numpy 查詢某安裝包的詳細資訊 numpy可...