banner
TerryHu

Terry's Site

bilibili

golang后端服务炸了?就用pprof

假如你发现服务 cpu / 内存占用率过高,或是请求响应慢,你想知道是哪段代码出了问题,pprof 就是用来帮你干这个的。

  1. 首先要提前引入 pprof 库,很简单,就在服务端代码的基础上多加几行代码
import (
	"net/http"
	_ "net/http/pprof"
)

func main() {
	go func() {
		http.ListenAndServe("localhost:8080", nil)
	}()
	// 主进程
}
  1. 点击下图里的 profile,会采集 30s 的数据保存到 profile 文件里

Pasted image 20250108223541

之后运行

go tool pprof -http :8081 ./profile
  1. 打开http://localhost:8081/ui/

Pasted image 20250107105500

左上角可以选择传说的火焰图 (Flame Graph):

Pasted image 20250107105539

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。