ztao1987
发布于

如何抓取火焰图

安装 perf 工具

yum install -y perf

Git clone 火焰图生成工具,或者从 GitHub 手动下载

git clone https://github.com/brendangregg/FlameGraph
cd FlameGraph

抓取 oncpu 火焰图,可以使用-p 指定进程号,不加-p 选项可以抓取整个系统性能数据

perf record -F 99 -a -g -p ${pid} -- sleep 60
perf script | ./stackcollapse-perf.pl > out.perf-folded
./flamegraph.pl out.perf-folded > ${file_name}_oncpu.svg

抓取 offcpu 火焰图,-e 可以指定额外的性能事件,可以使用 perf inject 插入额外的信息

perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -a -g -p ${pid} sleep 60
perf script | ./stackcollapse-perf.pl > out.perf-folded
./flamegraph.pl --countname=us --title="Off-CPU Time Flame Graph" --colors=io out.perf-folded > ${file_name}_offcpu.svg
评论(1)
  • zhenchuan1
    zhenchuan1 回复

    在 mac 上抓取火焰图:

    sample ${pid} ${timeout} -f ~/Desktop/ouput.prof
    git clone https://github.com/brendangregg/FlameGraph
    cd FlameGraph
    ./stackcollapse-sample.awk ~/Desktop/ouput.prof| flamegraph.pl > ~/Desktop/perf.svg
    
test