BCC:基于 BPF 的 Linux 分析工具包
BCC 是基于 BPF 的 Linux IO 分析、监控、网络工具集合。BCC 是使用 C++ 和 Python 编写的,遵循 Apache 开源授权协议。
BPF Compiler Collection (BCC) 是创建高效内核追踪和处理程序的工具包,包含几个有用的工具和用例。BCC 扩展了 BPF (Berkeley Packet Filters) 的用途,BPF 之前被称为 eBPF,是 Linux 3.15 新增的一个新特性。BCC 大部分的功能都要求 Linux 4.1+。
Ingo Molnár 是这样描述 eBPF 的:
eBPF 程序 (用户定义,内核执行沙盒字节码) ,允许在一个 live 内核镜像中用户定义基础设施,不会再发生崩溃、挂起等问题。
BCC 让 BPF 程序更容易编写,使用 C(LLVM 包括一个 C 封装器)编写内核基础设施,前端使用 Python 和 Lua,适用于很多任务,包括性能分析和网络跟踪控制。
截图
这个用例追踪了一个硬盘 I/O 内核功能:
# ./bitehist.py
Tracing... Hit Ctrl-C to end.
^C
kbytes : count distribution
0 -> 1 : 3 | |
2 -> 3 : 0 | |
4 -> 7 : 211 |********** |
8 -> 15 : 0 | |
16 -> 31 : 0 | |
32 -> 63 : 0 | |
64 -> 127 : 1 | |
128 -> 255 : 800 |**************************************|=
工具
GitHub 地址:https://github.com/iovisor/bcc
发表回复