brendangregg的perf- tools工具。
git clone --depth 1 https://github.com/brendangregg/perf-tools
perf-tools已经是一个非常成熟通用的内核debug以及性能检测工具。
基于内核自身的ftrace/ eBPF功能,帮助我们封装了多个常用的功能。
比如funcgraph,如果通过手动配置ftrace需要自行操作/sys/kernel/debug/tracing/目录下的tracing接口。
#cd /sys/kernel/debug/tracing
#echo function_graph > current_tracer //跟踪类型为function_graph
#echo blk_account_io_done > set_graph_function //设置跟踪的函数
#echo tracing_on //启动tracing
#cat trace //trace到的结果日志通过trace文件接口显示
使用perf-tools只需要:
#funcgraph "blk_account_io_done"
当然还有一些更多的功能,比如文件相关/内存相关/进程相关,每个命令还可以提供多个选项。