go tools pprof 快速使用笔记

  • Post author:
  • Post category:其他


目标:快速安装 + 成功使用上,主要是应对工作当中突然需要使用这个进行分析,并且之前没用过的情况



安装



1.首先安装go并配置环境

go version 判断是否成功



2.安装go tools

到github上下载go tools:[https://github.com/golang/tools].解压该文件夹,并将该文件夹重新命名为tools,其实这里面都是相应工具的源代码.

➣再在golang 的安装路径下的src文件夹下”/usr/local/bin/go/src” 新建gitbub.com文件夹和golang.org文件夹。

➣然后在golang.org文件夹下面新建文件夹x,接着将下载的go开发工具的文件夹(tools)移动到x里面。

➣然后跳出到文件夹src下,执行命令:

go get golang.org/x/tools/(具体的工具链文件夹名称) (go get golang.org/x/tools/ 应该亦可)

完成以上操作后就可以在golang安装路径的bin”/usr/local/bin/go/bin”里面看到可执行的工具链。什么godoc gunu 等开发环境工具。

go tool 回车既可以判断是否成功安装



3.安装图形工具graphviz


  • Windows:

官方下载安装包: [http://www.graphviz.org/download/]

下载Stable稳定版本(.msi) 注意

选择添加环境变量 之后重启


  • Linux(例:Centos)

方式1).添加repo依赖

yum list available 'graphviz*'
yum install 'graphviz*'  --skip-broken
#备注:--skip-broken可选:跳过错误依赖,不加这个参数会提示安装包依赖错误,因为这里并不需要其它的安装包,所以跳过即可。

方式2).源码包编译安装 下载地址:[http://204.178.9.49/graphviz-rhel.repo]

./configure

make

make install



使用



离线

在有pb文件的情况下,用于分析当时的信息

1.命令窗口:go tool pprof pprof.**.pb.gz

此时 可以在控制台使用top等命令,但是相对不够直观,也无法清晰查看具体调用链

eg:go tool pprof .\pprof.server.alloc_objects.alloc_space.inuse_objects.inuse_space.001.pb.gz

2.网页可视化界面:go tool pprof -http=”:8081″ pprof.**.pb.gz

eg: go tool pprof -http=”:8081″ .\pprof.server.alloc_objects.alloc_space.inuse_objects.inuse_space.001.pb.gz

之后打开链接:[http://localhost:8081/ui/] ,即可查看



线上

保存实时的信息


内存 栈信息


go tool pprof http://host:pprof_port/debug/pprof/heap


CPU 信息 连续跟踪30S


go tool pprof http://host:pprof_port/debug/pprof/profile?seconds=30


选择view—peek


可以查看对应的方法代码路径 以及调用栈函数信息

这样就可以知道具体哪个方法占用的资源高


goroutine go协程信息


go tool pprof http://host:pprof_port/debug/pprof/goroutine

与这个命令相同:curl “host:pprof_port/debug/pprof/goroutine?debug=1” > 1.out


goroutine 调用的栈信息


curl “host:pprof_port/debug/pprof/goroutine?debug=2” > goroutine_stack.log


对于docker运行的


1.查看配置文件的pprof端口信息,以及所需要查看的docker ip

2.docker ps 查看本地端口和docker对应ip,端口的映射信息

参考:


https://blog.csdn.net/sunxianghuang/article/details/93869683



https://www.jianshu.com/p/01a333a29288



版权声明:本文为yks0527原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。