工具集总览
这是一组开箱即用的 eBPF 观测工具,覆盖进程、文件系统、块层、网络与调度等方向。它们把常见观测任务封装成命令行程序:谁启动了新进程、块设备延迟分布如何、哪条连接在重传、运行队列等待多久。相比自己写脚本,这些工具的参数与输出格式已经过打磨,适合作为排查的第一批手段。
基本信息
| 适用平台 | Linux,需要内核 eBPF 支持 |
|---|---|
| 工具位置 | 系统工具目录,路径随发行版不同 |
| 命名习惯 | 发行版常在工具名后加统一后缀 |
| 权限要求 | 运行需要较高权限 |
| 使用方式 | 不带参数运行通常能看到用法提示 |
典型使用场景
- 排查一闪而过的进程:谁在反复拉起子进程。
- 存储侧问题定性:块层延迟是整体抬高还是长尾。
- 文件系统卡顿点名:哪些操作超过了阈值。
- 调度压力确认:任务在队列里等了多久。
- 网络异常定位:哪条连接在重传、哪些连接异常终止。
浏览工具
浏览工具
ls /usr/share/bcc/tools | head -40 # 列出可用工具
ls /usr/share/bpfcc/tools 2>/dev/null | head # 发行版后缀不同时的备用路径
execsnoop-bpfcc -t # 带时间戳观察新进程
execsnoop-bpfcc # 不带参数也能看到用法
biolatency-bpfcc 10 1 # 块层延迟分布,10 秒窗口每秒刷新
biolatency-bpfcc -h # 查看全部参数常用工具与用途
| 工具方向 | 观测内容 | 输出形态 |
|---|---|---|
| 进程启动 | 新进程与其父进程 | 逐条事件 |
| 块层延迟 | IO 完成延迟分布 | 直方图 |
| 逐条 IO | 单次 IO 的进程与延迟 | 逐条明细 |
| 文件操作 | 超过阈值的慢操作 | 逐条明细 |
| 调度等待 | 可运行到获得处理器的时间 | 直方图 |
先运行不带参数的工具看用法提示,比翻文档快;工具名与包名随发行版不同,自动化脚本里硬编码路径容易在换机器后失败。
旧内核可能缺少新工具依赖的特性,运行会直接失败或采集不到数据;使用前先确认内核版本与工具要求是否匹配,避免在生产环境反复试错。