之前一直研究过golang 的 pprof的性能分析,但是没搞出火焰图,后面查了一些资料学会了生成火焰图。
今天我就用直接简单暴力的方式的教程来说明怎么用Golang的pprof监控和生成火焰图。
一.在代码里面写监听接口口。
#必须要 import "net/http/pprof"
go func() {
if err := http.ListenAndServe("0.0.0.0:6060", nil); err != nil {
fmt.Println("0.0.0.0:6060", err.Error())
}
}()
如下图所示:
二.运行程序。
三.查看pprof性能
① 访问 http://localhost:6060/debug/pprof/
②如果你不想使用网页的交互模式,可以再终端使用以下命令,当然每次都是新数据:
#查看堆信息
go tool pprof --text http://localhost:6060/debug/pprof/heap
结果如下:
一、Go torch
go-torch是Uber公司开源的一款针对Go语言程序的火焰图生成工具,能收集 stack traces,并把它们整理成火焰图,直观地程序给开发人员。
go-torch是基于使用BrendanGregg创建的火焰图工具生成直观的图像,很方便地分析Go的各个方法所占用的CPU的时间, 火焰图是一个新的方法来可视化CPU的使用情况,本文中我会展示如何使用它辅助我们排查问题。
二、安装
FlameGraph 是profile数据的可视化层工具,已被广泛用于Python和Node
git clone https://github.com/brendangregg/FlameGraph.git
cp flamegraph.pl /usr/local/bin
有了flamegraph的支持,我们接下来要使用go-torch展示profile的输出,而安装go-torch很简单,我们使用下面的命令即可完成安装
go get -v github.com/uber/go-torch
①go-torch -h 查看帮助,如下:
② 程序跑起来,执行go-torch如下:
#采集60秒的数据,在当前目录下生成cpu.svg文件
go-torch -u http://127.0.0.1:6060 --seconds 60 -f cpu.svg
③打开svg文件,查看火焰图,如下:
参考文章:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。