1. 概述
BCC是一个用于跟踪内核和操作程序的工具集,其软件包中包含了一些有用的工具和例子,它扩展了BPF(Berkeley Packet Filters),通常被称为eBPF , 在Linux3.15中首次引入,但大多数BCC的功能需要Libux4.1及以上版本。
BCC使用C语言进行内核检测,并使用Python和lua作为前端简化了BPF程序的编写,它适用于多种任务,如性能分析和网络流量控制。
BCC支持的分析工具示图如下:
1.1 常用工具列表:
execsnoop
opensnoop
ext4slower (or btrfs, xfs, zfs*)
biolatency
biosnoop
cachestat
cachetop
tcpconnect
tcpaccept
tcpretrans
runqlat
profile
2. 编译安装
1). 下载地址:Releases · iovisor/bcc (github.com)https://github.com/iovisor/bcc/releases2). 文件:bcc-src-with-submodule.tar.gz
3).解压:tar xvzf bcc-src-with-submodule.tar.gz
2.1 Linux X86
2.1.1 安装编译环境
sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev
sudo apt-get install python3-distutils
sudo apt-get install python3-pip
sudo apt-get install python3-setuptools
上述错误需要安装:
sudo apt-get install iperf3 iperf netperf
2.1.2 编译
1). 创建编译目录
$ mkdir -p bcc/build
$ cd bcc/build
2). 编译安装
步骤如下:
cmake ..
make
sudo make install
cmake -DPYTHON_CMD=python3 ..
pushd src/python/
make
sudo make install
popd
3). 安装期间问题解决:
- cmake遇到libbpf update问题
- 运行遇到BPF异常
如上问题需要修改python版本
步骤如下:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python
修改好后,执行指令:
2.2 NDK 交叉编译
3. 使用
3.1 Linux使用
3.2 Android/QNX使用
</article>