乐趣区

关于运维:Perf工具及火焰图

perf 工具常用命令
1、Perf Stat:剖析性能(Ctrl +C 完结收集)perf stat -p $pid -d     # 过程级别统计
perf stat -a -d sleep 5  # 零碎整体统计


2、Perf Top:实时显示零碎 / 过程的性能统计信息
# 默认性能事件为 cycles (CPU 周期数)。与 Linux top tool 性能相似
perf top -p $pid -g     # 过程级别
perf top -g  # 零碎整体

3、Perf Record:记录一段时间内零碎 / 过程的性能事件
# 默认性能事件为 cycles (CPU 周期数)。perf record -p $pid -g #过程采样
perf record -p $pid -g -e cycles -e cs #过程采样,指定事件
perf record -a -g -e cycles -e cs #零碎整体采样


4、perf report: 统计每个调用栈呈现的百分比,而后从高到低排列。# 读取 perf record 创立的数据文件 (默认读取当前目录 perf.data),perf report -n --stdio
perf 后果转换火焰图
1、下载火焰图工具
# 工具源码外部脚本文件能够间接应用
git clone https://github.com/brendangregg/FlameGraph.git
    
2、记录
# 执行频率是 99Hz(每秒 99 次)perf record -F 99 -p 13204 -g -- sleep 30

3、用 perf script 工具对 perf.data 进行解析
perf script -i perf.data &> perf.unfold


4、将 perf.unfold 中的符号进行折叠:FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded

5、最初生成 svg 图:FlameGraph/flamegraph.pl perf.folded > perf.svg

6、浏览器关上 svg 文件 
退出移动版