BCC(BPF编译器集合 )是用于创建足智多谋内核跟踪和操作程序一套功能强大的适当的工具和示例文件。 它采用扩展BPF( Berkeley包过滤器 ),最初被称为eBPF这是在Linux的3.15的新功能之一。
BCC / BPF - 用于Linux性能监视的动态跟踪工具
实际上,大多数由BCC使用的组件的需要的Linux 4.1或以上,和其值得注意的特点包括:
最适合用于高级Linux用户,BCC可以很容易地编写使用内核仪表用C BPF程序和前端在Python和Lua。此外,它支持多个任务,如性能分析,监控,网络流量控制等。
请记住,BCC使用在Linux内核版本4.1中加入以上功能,并作为一项要求,内核应该已经编译如下设置标志:
CONFIG_BPF=y CONFIG_BPF_SYSCALL=y # [optional, for tc filters] CONFIG_NET_CLS_BPF=m # [optional, for tc actions] CONFIG_NET_ACT_BPF=m CONFIG_BPF_JIT=y CONFIG_HAVE_BPF_JIT=y # [optional, for kprobes] CONFIG_BPF_EVENTS=y
要检查你的核心标志,查看文件了/proc/config.gz或在下面的例子中运行命令:
howtoing@HowToing ~ $ grep CONFIG_BPF= /boot/config-`uname -r` CONFIG_BPF=y howtoing@HowToing ~ $ grep CONFIG_BPF_SYSCALL= /boot/config-`uname -r` CONFIG_BPF_SYSCALL=y howtoing@HowToing ~ $ grep CONFIG_NET_CLS_BPF= /boot/config-`uname -r` CONFIG_NET_CLS_BPF=m howtoing@HowToing ~ $ grep CONFIG_NET_ACT_BPF= /boot/config-`uname -r` CONFIG_NET_ACT_BPF=m howtoing@HowToing ~ $ grep CONFIG_BPF_JIT= /boot/config-`uname -r` CONFIG_BPF_JIT=y howtoing@HowToing ~ $ grep CONFIG_HAVE_BPF_JIT= /boot/config-`uname -r` CONFIG_HAVE_BPF_JIT=y howtoing@HowToing ~ $ grep CONFIG_BPF_EVENTS= /boot/config-`uname -r` CONFIG_BPF_EVENTS=y
通过安装4.3以上版本的 Linux内核,从开始http://kernel.ubuntu.com/~kernel-ppa/mainline 。 作为一个例子,写一个小的shell脚本“bcc-install.sh”与下面的内容。 注意 :更新PREFIX值的最晚日期,以及浏览提供获得实际的REL值,在shell脚本代替它们的前缀网址的文件。
$ echo "deb [trusted=yes] https://repo.iovisor.org/apt/xenial xenial-nightly main" | sudo tee /etc/apt/sources.list.d/iovisor.list $ sudo apt-get update $ sudo apt-get install bcc-tools