pprof 使用总结

瘦欲@ 提交于 2019-11-29 21:34:54

pprof 使用总结

作用:
1. cpu分析,按照一定的频率监听cpu寄存器使用情况。确定Cpu周期花费时间的跟踪位置。
2. 内存分析,在应用程序进行堆分配时记录堆栈跟踪,用于监视当前和历史内存使用情况,以及检查内存泄漏。
3. 阻塞分析,记录 goroutine 阻塞等待同步(包括定时器通道)的位置
4. 互斥锁分析,报告互斥锁的竞争情况

web方式

url输入地址:  http:127.0.0.1:9090/debuf/pprof
会出现以下信息
    /debug/pprof/
    profiles:
    0   block
    5   goroutine
    3   heap
    0   mutex
    9   threadcreate

    full goroutine stack dump

终端操作

登录指令:
1. go tool pprof 127.0.0.1:9090/debug/pprof/profile   cpu信息
2. go tool pprof 127.0.0.1:9090/debug/pprof/heap      内存信息
    默认类型: -inuse_space:分析应用程序的常驻内存占用情况
             -alloc_objects:分析应用程序的内存临时分配情况 
    go tool pprof -alloc_objects 127.0.0.1:9090/debug/pprof/heap   
    
3. go tool pprof 127.0.0.1:9090/debug/pprof/mutex     锁信息
3. go tool pprof 127.0.0.1:9090/debug/pprof/goroutine 协程信息

常用查看指令:
    web 生产svg 
    top 查看排名前20信息
    
终端参数意义:
    flat:给定函数上运行耗时
    flat%:同上的 CPU 运行耗时总比例
    sum%:给定函数累积使用 CPU 总比例
    cum:当前函数加上它之上的调用运行总耗时
    cum%:同上的 CPU 运行耗时总比例
    最后一行为函数名称   
    

go-torch 使用

安装
    go get github.com/uber/go-torch
    cd $GOPATH/src/github.com/uber/go-torch
    git clone https://github.com/brendangregg/FlameGraph.git
    
    然后将flamegraph.pl所在的目录拷贝到环境变量
    运行指令:
    go-torch -u http://127.0.0.1:9909  --seconds 60 -f cpu.svg  查看cup占比
    
    go-torch -u http://127.0.0.1:9909/debug/pprof/heap  --colors mem -f mem.svg  查看内存占比
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!