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/profile
cpu資訊
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可...