生成On-cpu火焰图

参考:xxx

生成 Off-CPU 火焰图

Off-CPU 分析是查找线程阻塞和等待事件这些类型的原因而造成延迟的有效方法。通过从线程上下文切换的内核调度函数中跟踪这一点,可以以相同的方式分析所有 Off-CPU 类型延迟,而无需跟踪多个源。要查看 Off-CPU 事件的上下文以了解其发生原因,可以检查用户和内核堆栈回溯跟踪。 通过 CPU 采样分析(On-CPU 分析) 和 Off-CPU 分析,可以全面了解线程花费时间的位置。On-CPU 分析 和 Off-CPU 分析 是互补的。

perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -a -g sleep 1


perf script -F comm,pid,tid,cpu,time,period,event,ip,sym,dso | \
 awk 'NF > 4 { exec = $1; period_ms = int($5 / 1) } 
          NF > 1 && NF <= 4 && period_ms > 0 { print $2 } 
      NF < 2 && period_ms > 0 { printf "%s\n%d\n\n", exec, period_ms }' | \
     ./FlameGraph/stackcollapse.pl | \
     ./FlameGraph/flamegraph.pl --countname=ms --title="Off-CPU Time Flame Graph" --colors=io > offcpu.svg

alt text

results matching ""

    No results matching ""