Administrator
发布于 2024-07-16 / 47 阅读
0

05-Linux性能分析工具perf

perf工具

perf事件源与PMU

perf在eBPF中的应用

perf_event open系统调用

perf APr使用

sudo apt install linux-tools-$(uname -r)
sudo apt-file list linux-tools-5.15.0-52-generic

对系统正在运行的程序进行采样,查看系统调用。

sudo perf top

对系统调用,sys_enter_ 进行统计采样

sudo perf stat -e 'syscalls:sys_enter_*' -a sleep 5

sudo perf ftrace -F |wc -l

采样
sudo perf record ls

查看采样记录
sudo perf script

以表格的形式显示出来
sudo perf report

sudo perf record -e 'syscalls:sys_enter_openat' -aR sleep 2

通过strace 查看perf 程序如何工作,在linux

sudo strace perf record -e 'syscalls:sys_enter_openat' -aR sleep 2

sudo strace perf -e openat,perf_event_open -e 'syscalls:sys_enter_openat' -aR sleep 2

/sys/bus/event_source/devices/

在linux 源码下查询
grep -r "perf_pmu_register" kernel/ |grep """"

grep -r "perf_pmu_register" arch/ grep """"

linux 内核相关的跟踪代码

https://elixir.bootlin.com/linux/v5.15.52/source/kernel/trace

https://github.com/aleixrocks/perf_event_open-example

sudo strace perf -e openat,perf_event_open  examples/hello_world.py