| 用途 | 系统调用/IO/延迟的动态观测 |
|---|---|
| 语法 | bpftrace -e 'probe /filter/ { action }' |
| 示例 | execsnoop、biolatency 等) |
常用一行流
常用一行流
sudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s %s\n", comm, str(args->filename)); }'
sudo bpftrace -e 'kprobe:vfs_read { @[comm] = count(); }' # 读调用次数按进程
sudo bpftrace -e 'kprobe:do_sys_openat2 { @[comm] = count(); }' # 谁在开文件
# 延迟直方图
sudo bpftrace -e 'kprobe:vfs_fsync { @ns = hist(nsecs - @start[tid]); } kprobe:vfs_fsync_return { @start[tid] = nsecs; }'内核版本决定可用探针;生产使用遵循最小窗口原则,先在测试环境验证脚本。