• perf+火焰图使用


    使用

    # 安装perf
    yum install perf -y
    # 下载绘图工具
    git clone https://github.com/brendangregg/FlameGraph.git
    
    # 采集数据(perf record表示记录,-F99表示每秒99次,-p3887是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒)
    perf record -F99 -p3887 -g -- sleep 30
    
    # 生成火焰图
    perf script -i perf.data &> perf.unfold
    ./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
    ./FlameGraph/flamegraph.pl perf.folded > perf.svg
    

    火焰图的含义

    1. 火焰图是基于 stack 信息生成的 SVG 图片, 用来展示 CPU 的调用栈。 y 轴表示调用栈, 每一层都是一个函数.
    2. 调用栈越深, 火焰就越高, 顶部就是正在执行的函数, 下方都是它的父函数. x 轴表示抽样数, 如果一个函数在 x 轴占据的宽度越宽,
    3. 就表示它被抽到的次数多, 即执行的时间长. 注意, x 轴不代表时间, 而是所有的调用栈合并后, 按字母顺序排列的.
    4. 火焰图就是看顶层的哪个函数占据的宽度最大. 只要有 “平顶”(plateaus), 就表示该函数可能存在性能问题。 颜色没有特殊含义,
    5. 因为火焰图表示的是 CPU 的繁忙程度, 所以一般选择暖色调.
      在这里插入图片描述
  • 相关阅读:
    循环链表结构
    复杂的权衡之时间、空间和单链表结构
    单链表操作之删除
    单链表操作之插入
    单链表操作之替换
    单链表操作之搜索
    文件系统的原理
    类加载的三种方式比较
    shell中awk printf的用法
    推荐网站
  • 原文地址:https://www.cnblogs.com/CSunShine/p/11478278.html
Copyright © 2020-2023  润新知