ubuntu 火焰图脚本

环境ubuntu1804 x86_64 

#!/bin/bash
if [ "$2_" = "_" ];then
    echo "usage ./fire.sh oncpu/offcpu pid"
    exit
fi

if [ "$1_" = "oncpu_" ];then
    sudo perf record -F 99 -p $2 -g -- sleep 10
    sync
    sudo perf script > out.perf
    sync
    sudo ./FlameGraph-master/stackcollapse-perf.pl out.perf > out.folded
    sync

elif [ "$1_" = "offcpu_" ];then
    sudo bash -c "echo 1 > /proc/sys/kernel/sched_schedstats"
    sudo perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -p $2 -g -o perf.data.raw sleep 5 
    sync
    sudo perf inject -v -s -i perf.data.raw -o perf.data
    sync
    sudo perf script -F comm,pid,tid,cpu,time,period,event,ip,sym,dso > out.perf
    awk ' NF > 4 { exec = $1; period_ms = int($5 / 1000000) } NF > 1 && NF <= 4 && period_ms > 0 { print $2 } NF < 2 && period_ms > 0 { printf "%s\n%d\n\n", exec, period_ms } ' ./out.perf > out.perf2
    sync
    sudo ./FlameGraph-master/stackcollapse.pl out.perf2 > out.folded
    sync

else
    echo "usage ./fire.sh oncpu/offcpu pid"
    exit
fi


if [ "$1_" = "oncpu_" ];then
    sudo ./FlameGraph-master/flamegraph.pl out.folded > oncpu_$2.svg
else
    sudo ./FlameGraph-master/flamegraph.pl out.folded > offcpu_$2.svg
fi

火焰图生成脚本资源下载icon-default.png?t=N7T8https://download.csdn.net/download/shenhuxi_yu/88518447

 生成的svg文件用浏览器打开即可,注意事项如下


--> ERROR: No stack counts found: sudo apt-upgrade perl

--> echo -1 > /proc/sys/kernel/perf_event_paranoid

--> unknown symbol 编译参数加-g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenhuxi_yu

感谢投币,继续输出

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值