golang使用pprof分析程序性能瓶颈

火焰图为性能分析的利器,可以快速找到程序性能的瓶颈。

golang 1.11版本中已经自带了火焰图功能,不再需要使用go-torch项目。

查看火焰图需要用到Graphviz工具,该工具需要单独安装。

Graphviz工具运行的服务器系统为CentOS,使用下载源码包的方式进行安装。

依次执行下面命令:

1
2
3
./configure
make
make install

例子

本文的使用环境:服务器程序为transfer,运行在linux系统中。执行go tool pprof命令运行在linux服务器10.103.17.184上。

首先需要在服务器上运行的服务开启pprof功能,即在import中增加_ "net/http/pprof"的导入即可。

程序运行后调用程序的/debug/pprof/profilehttp接口,可获取到cpu profile数据文件。例如,在服务器上可以执行运行wget http://10.103.34.138:3300/debug/pprof/profile命令,将profile文件下载到另外一台分析的服务器上。

在分析服务器上执行go tool pprof -http="10.103.17.184:20000" transfer profile

在浏览器中打开10.103.17.184:20000即可得到性能分析的结果。

调用关系图

火焰图

 wechat
欢迎订阅我的公众号!