perf程序cpu火焰图分析

最好在root权限下执行指令,权限开放情况下才能采集到完整的堆栈信息

perf使用

# 采集信息

                  sudo perf record -F 99 -p 72448 -g -- sleep 30

  perf record 表示采集系统事件,-F 99 表示每秒 99 次, -p 72448 是进程号, 即对哪个进程进行分析, -g 表示记录调用栈, sleep 30 则是持续 30 秒.

                sudo perf report -n --stdio

    # 生成火焰图

                sudo perf script -i perf.data | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg

3.将.svg文件用浏览器打开即可查看火焰图信息


如上所示,即是抓取到的cpu火焰图

火焰图分析

  火焰图反映堆栈函数的调用信息,顶端越宽则代表这个函数存在问题更大

  all即为程序进程

  第二层为main函数处理以及thrift方法的线程池,命名可以在程序中设置

可以查看到thrift每一个线程中mpi_montmul方法占用很多cpu,查找发现为openssl库调用的作为解密所需要的函数,因此无太大优化空间


如果看完觉得有所收获的话,记得点赞关注哦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容