核心调试与跟踪工具
Ftrace
- 功能:内核函数跟踪、延时分析、事件跟踪。
- 工具:
trace-cmd(命令行工具)kernelshark(图形化界面)
- 适用场景:分析内核函数调用、中断延迟、调度行为。
Perf
- 功能:性能计数器分析(CPU 硬件事件)、调用图采样。
- 命令:
perf stat(统计事件)perf record/perf report(采样分析)perf trace(系统调用跟踪)
- 适用场景:CPU 性能瓶颈、热点函数分析。
BPF(eBPF)工具集
- 框架:
- BCC:Python 封装的 BPF 工具库(如
opensnoop、execsnoop)。 - bpftrace:脚本化 BPF 工具(类似 DTrace 语法)。
- BCC:Python 封装的 BPF 工具库(如
- 适用场景:动态跟踪内核/用户态、网络、存储等高级分析。
硬件与系统层工具
CPU/内存分析
vmstat、mpstat、pidstat(sysstat 包)numactl(NUMA 分析)turbostat(CPU 频率/功耗监控)
I/O 与存储
iostat(磁盘 I/O)blktrace(块设备层跟踪)biosnoop(BCC 工具,跟踪块 I/O)
网络
tcpdump、Wiresharknetstat/ss(连接状态)nicstat(网络接口统计)tcptraceroute(BCC 网络跟踪)
扩展工具链
内核调试
crash(内核转储分析)KGDB(内核源码级调试)/proc、/sys文件系统(实时状态查看)
用户态跟踪
strace/ltrace(系统调用/库调用跟踪)gdb(用户态调试)Valgrind(内存检测)
可视化与整合
- TraceCompass(图形化跟踪分析)
- FlameGraph(生成火焰图)
# 生成 perf 火焰图示例 perf record -F 99 -g --call-graph dwarf -p <PID> perf script | FlameGraph/stackcollapse-perf.pl | FlameGraph/flamegraph.pl > output.svg
推荐工具组合场景
| 场景 | 推荐工具 |
|---|---|
| 启动时间分析 | ftrace(initcall 跟踪)、bootchart |
| 延迟问题 | ftrace(wakeup 延迟)、perf sched |
| 内存泄漏 | kmemleak、valgrind、BPF memleak |
| 网络延迟 | tcpdump、tcprtt(BCC)、ping |
| 生产环境安全跟踪 | bpftrace(低开销)、systemtap |
安装与学习资源
-
安装(以 Ubuntu 为例):

sudo apt install linux-tools-common linux-tools-$(uname -r) bpfcc-tools trace-cmd kernelshark sysstat
-
学习资源:
- Brendan Gregg 博客/书籍(《Systems Performance》)
- 内核文档
- BCC/bpftrace 官方 GitHub 项目
OpenCLAW 的核心是 Ftrace、Perf、BPF 三大工具链,结合硬件/系统工具形成完整分析体系,建议:
- 初学者从
perf和trace-cmd入手; - 深度调试使用
ftrace和BPF; - 生产环境优先选择低开销的 BPF 工具(如
bpftrace)。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。