Perf 性能分析工具使用

安装

  • 查看内核版本(Ubuntu)
  • uname -r 
    

    由于我之前升级了内核版本(6.2.1),故直接以下命令并不能成功安装perf工具(使用perf命令无法成功)

    sudo apt-get install linux-tools-common
    perf --version
    
  • 如果上面能成功的话这部分可以跳过
  • # 找到自己内核版本的内核源码路径 (也可以网上直接下载)
    # [Index of /pub/linux/kernel/](https://mirrors.edge.kernel.org/pub/linux/kernel/)
    cd path/linux-6.2.1/tools/perf # 将path替换为自己的路径
    make -j4 && make install # 安装perf
    cp ./perf /usr/bin
    perf --version
    

    使用

    # 用gcc编译好对应的可执行文件
    gcc -g image_to_gerber.c -o image_to_gerber
    # perf启动 生成perf.data
    sudo perf record -a -g ./image_to_gerber
    # 授权 (不然后面查看svg会显示No stack counts found! 后面的命令一定要加sudo)
    sudo chmod -R 777 perf.data
    # 下载火焰图生成项目
    git clone https://github.com/brendangregg/FlameGraph.git
    # 生成out.perf
    sudo perf script -i perf.data > out.perf
    #生成out.floded 
    sudo ./FlameGraph/stackcollapse-perf.pl out.perf > out.floded 
    #生成svg 
    sudo ./FlameGraph/flamegraph.pl out.floded > ls.svg
    

    结果

    Perf 性能分析工具使用-每日运维

    分析

    火焰图中出现了很多swapper,一开始以为是缺页导致的,后面查询后发现是这是cpu空闲状态的表示