perf性能分析

Perf 是Linux kernel⾃带的系统性能优化⼯具, Perf的优势在于与Linux Kernel的紧密结合。Perf 可以 计算每个时钟周期内的指令数, 还可以对程序进⾏函数级别的采样,从⽽了解程序的性能瓶颈究竟在哪 ⾥。更多细节请参考perf性能分析工具使用分享_良知犹存的博客-CSDN博客_perf report怎么看

⼀、⼯具准备

1. 安装perf 

        sudo apt-get install linux-tools-common linux-tools-"$(uname -r)" linux-cloud-tools-"$(uname -r)" linux-tools-generic linux-cloud-tools-generic

perf根据进程pid记录进程cpu使⽤情况
    sudo perf record -e cpu-clock -g -p 13108

ctrl + c停⽌记录,发现当前⽬录下保存了⽂件perf.data
使⽤perf report查看
sudo perf report -i perf.data

2.下载火焰图渲染工具

FlameGraph 可将perf记录的数据转换为⽕焰图,该⼯具使⽤perl脚本编写,下载直接使⽤。
     git clone https://github.com/brendangregg/FlameGraph.git

渲染后的perf.data是一张svg图(浏览器)

二、使用流程

1. 启动需要性能分析的进程节点(explore)

2. 获取进程pid号

3. perf根据pid号记录cpu时间 && ctrl+c停止记录,得到perf.data
    gene_record_pid.sh脚本如下:

#!/bin/bash

if [ $# -ne 1 ];then
	echo "[Warning] need add pid of progress!"
else
	rm -rf perf*
	#sudo perf record -e cpu-clock -g -p 13108
	sudo perf record -e cpu-clock -g -p $1
fi

4. 制作火焰图

    gen_frame_graph.sh脚本如下:

#!/bin/bash

rm -rf perf.unfold perf.folded perf.svg

# 1.使用perf script工具对per.data进行解析
sudo perf script -i perf.data &> perf.unfold

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

# 3.最后生成svg图
../FlameGraph/flamegraph.pl perf.folded > perf.svg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

☜@_@达奚黑雁

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值