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使用

Logo

更多推荐