排查CPU占用过高问题:利用go自带的性能分析-开启pprof
1、在yaml里添加debug,把open-pprof修改为true
debug:
open-pprof: true
2、页面查询:
http://10.25.10.120:3333/debug/pprof/ 网页版
3、服务器环境需安装graphviz
yum install graphviz安装# for centos
4、服务器执行命令
go tool pprof http://10.25.10.120:3333/debug/pprof/profile?seconds=60 //生成gz文件
//进入pprof
top
traces // runtime.gcBgMarkWorker 函数 golang 垃圾回收
go tool pprof -http 10.25.10.120:8089 /root/pprof/pprof.audit-server.samples.cpu.006.pb.gz //生成web网页,火焰图
注意,默认seconds=30s,最多设为60s
graphviz是pprof另外一个视图工具,和火焰图类似
每个方块代表一个函数,它下面一层表示这个函数会调用哪些函数,方块的大小代表了使用 CPU 所占百分比
4、生成pdf文件
find / -name profile001.pdf 查文件
参考链接:
Graphviz安装配置教程(图文详解)_51CTO博客_graphviz安装教程
https://www.cnblogs.com/linguoguo/p/10375224.html
https://www.cnblogs.com/jiujuan/p/14588185.html
pprof性能分析-火焰图 – Heart.Think.Do
利用 Go Tool 下的 PProf 和 trace 对 Go 程序进行性能调优_go tool pprof-CSDN博客