BCC与bpftrace:强大的性能追踪工具
1. BCC工具概述
BCC项目包含70多个BPF工具,许多工具支持通过命令行参数来配置行为。这些工具都配有文档,包括手册页和示例文件。大部分工具是专门用于观察某一类活动的,也有一些是多用途的。
1.1 argdist工具示例
argdist(8) 可以创建强大的单行脚本。在函数退出的探针定义中,可以使用特殊变量 $retval、$entry(param)、$latency 。以下是一些使用示例:
- argdist -H 'p::__kmalloc(u64 size):u64:size' :输出 kmalloc 分配的内存大小直方图。
- argdist -p 1005 -C 'p:c:malloc(size_t size):size_t:size:size==16' :统计 PID 为 1005 的进程调用 malloc 分配 16 字节内存块的频率。
- argdist -C 'r:c:gets():char*:(char*)$retval#snooped strings' :获取 gets() 函数返回的所有字符串。
1.2 工具文档
每个 BCC 工具都有自己的手册页(man)和示例文件。以 opensnoop(8) 为例,其手册页包含以下内容:
| 部分 | 说明 |
| — | — |
| 名称(NAME) | 简要描述工具,如 opensnoop 用于追踪系统调用 open(),使用 Linux 内核中的 eBPF/bcc。
超级会员免费看
订阅专栏 解锁全文
7140

被折叠的 条评论
为什么被折叠?



