Pprof


安裝

  1. 安裝go-torch
go get github.com/uber/go-torch
  1. 安裝FlameGraph
cd $WORK_PATH && git clone https://github.com/brendangregg/FlameGraph.git
export PATH=$PATH:$WORK_PATH/FlameGraph
  1. 安裝graphviz
yum install graphviz
  1. 使用pprof
package main

import (
    "net/http"
    _ "net/http/pprof"
)

func main() {
    // 服務端啟動一個協程,支持pprof的handler
    //導入pprof的包,自動包含一些handler
	//項目加入如下代碼
    go func() {
        http.ListenAndServe("0.0.0.0:8888", nil)
    }()
	//other code
}

ab壓測

  1. 安裝apache

  2. 使用ab命令

  3. 基本使用

ab -n 19999 -c 20 http://xxxxxxxxxxxx
-n 總數
-c 同時並發請求數

pprof使用

  1. 監聽
go tool pprof http://localhost:port/debug/pprof/profile
  1. 操作
    進入30秒的profile收集時間,在這段時間內請求服務,盡量讓cpu占用性能產生數據

  2. pprof命令

top
在默認情況下,top命令會輸出以本地取樣計數為順序的列表。我們可以把這個列表叫做本地取樣計數排名列表。
web
與gv命令類似,web命令也會用圖形化的方式來顯示概要文件。但不同的是,web命令是在一個Web瀏覽器中顯示它。

火焰圖工具使用

  1. 監聽
//cpu火焰圖
go-torch -u http://ip:port/debug/pprof/ -p > profile-cpu.svg
//內存火焰圖
go-torch -u http://ip:port/debug/pprof/heap -p > profile-heap.svg
  1. 操作
針對測試服務端,進行操作,上述步驟默認監聽30s,即30s后可以生成相關圖像

參考

  1. Golang FlameGraph


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM