[转帖]BCC-Tool 工具使用

bcc,tool,工具,使用 · 浏览次数 : 0

小编点评

**BCC工具集概述** **1. 常用工具列表** * execsnoop * opensnoop * ext4slower * btrfs * xfs * zfs* * biolatency * biosnoopcachestat * cachetop * tcpconnect * tcpaccept * tcpretrans * runqlat * profile **2. 编译安装** **2.1. Linux X86 2.1.1 安装编译环境** * 安装 bison * 安装 build-essential * 安装 cmake * 安装 flex * 安装 git * 安装 libedit-dev * 安装 libllvm6.0-dev * 安装 libclang-6.0-dev * 安装 python zlib1g-dev * 安装 libelf-dev * 安装 iperf3 * 安装 netperf **2.1.2 编译** * 创建编译目录:`$ mkdir -p bcc/build` * cd到编译目录:`$ cd bcc/build` * 编译安装:`$ cmake ..` * 编译安装:`$ make` * 编译安装:`$ sudo make install` **2.2 NDK 交叉编译** * 使用`sudo rm /usr/bin/python`命令删除系统中的python,并将其链接到python3。 * 修改系统变量`$PYTHON_CMD`,将其指向python3的安装目录。 * 使用`2.1.2`步骤编译和安装。 **3. 使用** * 运行`2.1.1`步骤中创建的`src/python/`目录。 * 在该目录下,执行以下指令:`python3 -m venv venv && source venv/bin/activate`。 * 使用`pip install`命令安装所需的库。 * 运行程序。

正文

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>

与[转帖]BCC-Tool 工具使用相似的内容:

[转帖]BCC-Tool 工具使用

1. 概述 BCC是一个用于跟踪内核和操作程序的工具集,其软件包中包含了一些有用的工具和例子,它扩展了BPF(Berkeley Packet Filters),通常被称为eBPF , 在Linux3.15中首次引入,但大多数BCC的功能需要Libux4.1及以上版本。 BCC使用C语言进行内核检测,

[转帖]bcc/ebpf 安装及示例(2019)

http://arthurchiao.art/blog/bcc-ebpf-tutorial-zh/ eBPF 是 Linux 内核近几年最为引人注目的特性之一,通过一个内核内置的字节码虚拟机,完 成数据包过滤、调用栈跟踪、耗时统计、热点分析等等高级功能,是 Linux 系统和 Linux 应用 的功

[转帖]bcc入门

学习bcc已经有一段时间,稍微总结一下已知的一些内容。 1. 安装bcc bcc/INSTALL.md at master · iovisor/bcc · GitHubBCC - Tools for BPF-based Linux IO analysis, networking, monitorin

[转帖]bcc Tutorial

https://github.com/iovisor/bcc/blob/master/docs/tutorial.md This tutorial covers how to use bcc tools to quickly solve performance, troubleshooting, a

[转帖]bcc Python Developer Tutorial

https://github.com/iovisor/bcc/blob/master/docs/tutorial_bcc_python_developer.md This tutorial is about developing bcc tools and programs using the Py

[转帖]BCC和libbpf的转换

https://www.cnblogs.com/charlieroro/p/14244276.html 本文讲述如何将基于BCC的BPF应用转换为libbpf + BPF CO-RE。BPF CO-RE可以参见上一篇博文。 目录 BCC和libbpf的转换 为什么是libbpf和BPF CO-RE?

[转帖]BCC和libbpf的转换

https://cloud.tencent.com/developer/article/1770282?areaSource=103001.3&traceId=pqOBSL_jW1KSoi6X6LGEr BCC和libbpf的转换 本文讲述如何将基于BCC的BPF应用转换为libbpf + BPF

[转帖]使用bcc开发BPF程序的一点思路

https://zhuanlan.zhihu.com/p/488498453 之前的文章介绍了使用cilium工具开发BPF程序的例子。对于较新的系统内核来说,用这样较新的工具很不错,但是对于稍微旧一点的系统,如果不想直接写原生BPF程序的话,我们貌似只有一个选择,使用bcc。 一些常见的发行版的源

[转帖]利用BCC Tools追踪指定PID进程的方法

http://t.zoukankan.com/Emuaer-p-EmuaBCCTools3.html 想法的产生 通过熟悉许多BCC tools后,我们可以通过一些工具的组合,来实现一些定向的进程追踪 execsnoop跟踪新进程创建,跟踪exec函数。 bashreadline打印系统中所有bas

[转帖]linux【监控】BCC – 用于Linux性能监视,网络和更多的动态跟踪工具

https://blog.51cto.com/ghostwritten/5344917 文章目录​ ​1. ubuntu安装bcc​​​ ​2. centos安装bcc​​​ ​3. cachestat 缓存统计​​​ ​4. cachetop 缓存命中​​​ ​5. filtop 跟踪内核中文件的