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