perf程序cpu火焰图分析

2021-03-28  本文已影响0人  Luxifer路西菲尔

最好在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库调用的作为解密所需要的函数,因此无太大优化空间

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

上一篇下一篇

猜你喜欢

热点阅读