这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
今天学习了性能分析工具pprof的使用以及使用该工具进行实战中的性能调优
课件地址:bytedance.feishu.cn/file/boxcn7…
性能调优实战
1. 简介
性能调优原则:
- 要依靠数据而不是猜测
- 要定位最大瓶颈而不是细枝末节
- 不要过早优化
- 不要过度优化
2. 性能分析工具pprof
2.1 功能简介
pprof是用于可视化分析和分析性能分析数据的工具,用于希望知道应用在什么地方耗费了多少CPU,内存的场景
功能简介:
2.2 排查实战
在浏览器中打开http://localhost:6060/debug/pprof,可以看到这样的页面, 这就是我们刚刚引入的net/http/pprof注入的入口了。
页面上展示了可用的程序运行采样数据,下面也有简单说明,分别是:
- 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(右转谷歌)
小结: