pprof性能调优实战 | 青训营笔记

83 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

今天学习了性能分析工具pprof的使用以及使用该工具进行实战中的性能调优

课件地址:bytedance.feishu.cn/file/boxcn7…

性能调优实战

1. 简介

性能调优原则:
  • 要依靠数据而不是猜测
  • 要定位最大瓶颈而不是细枝末节
  • 不要过早优化
  • 不要过度优化

2. 性能分析工具pprof

2.1 功能简介

pprof是用于可视化分析和分析性能分析数据的工具,用于希望知道应用在什么地方耗费了多少CPU,内存的场景

功能简介:

image.png

2.2 排查实战

image.png

image.png

在浏览器中打开http://localhost:6060/debug/pprof,可以看到这样的页面, 这就是我们刚刚引入的net/http/pprof注入的入口了。

image.png 页面上展示了可用的程序运行采样数据,下面也有简单说明,分别是:

  • allocs:内存分配情况
  • blocks:阻塞操作情况
  • cmdline:程序启动命令及
  • goroutine:当前所有goroutine的堆栈信息
  • heap:堆上内存使用情况(同alloc)
  • mutex:锁竞争操作情况
  • profile: CPU占用情况
  • threadcreate:当前所有创建的系统线程的堆栈信息
  • trace:程序运行跟踪信息

可以在浏览器上查看对应的指标信息.

pprof排查实战:

可以从CPU,Heap内存,goroutine,mutex,block这几个角度出发,对某个有性能问题的应用程序进行排查.

例如可以在终端使用go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap" 可视化查看堆内存信息,其他类似

注意:可能启动可视化界面需要安装Graphviz(右转谷歌)

小结:

image.png