Linux性能分析工具(二)bpftrace (WIP)
一、工具介绍
bpftrace 是 Linux 高级追踪工具和语言。该工具基于 eBPF 和 BBC 实现了通过探针机制采集内核和程序运行的信息,然后用图表等方式将信息展示出来,帮助开发者找到隐藏较深的 Bug、安全问题和性能瓶颈。
bpftrace 使用 LLVM 作为后端,将脚本编译为 BPF 字节码,并利用 BCC 与 Linux BPF 系统交互,以及现有的 Linux 跟踪功能:内核动态跟踪(kprobes)、用户级动态跟踪(uprobes)、和跟踪点。bpftrace 语言的灵感来自 awk 和 C,以及 DTrace 和 SystemTap 等前置探测器。
项目链接:https://github.com/iovisor/bpftrace
推荐链接:https://zhuanlan.zhihu.com/p/457335441
二、安装及编译
官方github仓中有比较详尽的安装及编译手册,此处主要针对部分linux发行版本的安装或编译问题进行说明。
2.1 Ubuntu 16.04
2.1.1 安装二进制包
# install snap
sudo apt update
sudo apt install snapd
# install bpftrace
sudo snap install bpftrace
2.1.2 源码编译
由于snap无法在docker容器内部使用,因此如果想在docker容器内部使用bpftrace的话,必须在docker容器内重新编译。
2.1.2.1 bpftrace v0.9.3_release
# prepare compiling environment
sudo apt-get update
sudo apt-get install -y bison cmake flex g++ git libelf-dev zlib1g-dev libfl-dev systemtap-sdt-dev
sudo apt-get install -y llvm-7-dev llvm-7-runtime libclang-7-dev clang-7
git clone https://github.com/iovisor/bpftrace.git <target directory>; cd