Skip to content

perf工具在Docker容器中的安装方法#

一般安装方法: apt install -y linux-tools-generic linux-cloud-tools-generic

但是由于docker容器是用的宿主机的内核, 会有不匹配的情况,出现报错: WARNING: perf not found for kernel 4.4.0-210,所以需要安装指定包

方法一:使用预编译包(推荐)#

适用于内核版本有对应预编译包的情况。

1. 检查内核版本#

uname -r

2. 下载对应的perf工具包#

从Ubuntu安全仓库下载对应内核版本的perf工具包:

# 示例:内核4.4.0-210-generic
cd /tmp
wget http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-tools-4.4.0-210_4.4.0-210.242_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-tools-4.4.0-210-generic_4.4.0-210.242_amd64.deb

3. 安装#

sudo dpkg -i linux-tools-4.4.0-210_4.4.0-210.242_amd64.deb
sudo dpkg -i linux-tools-4.4.0-210-generic_4.4.0-210.242_amd64.deb

4. 验证#

perf --version
perf list

方法二:从源码编译#

适用于需要特定版本或预编译包不可用的情况。

1. 安装编译依赖#

sudo apt-get update
sudo apt-get install -y build-essential flex bison libssl-dev libelf-dev libncurses5-dev libncursesw5-dev

2. 下载内核源码#

cd /tmp
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz
tar -xf linux-4.4.tar.xz

3. 编译perf#

cd linux-4.4/tools/perf
make WERROR=0

4. 安装#

sudo make install

常用perf命令#

# 性能统计
perf stat <command>

# 记录性能数据
perf record <command>

# 查看报告
perf report

# 列出可用事件
perf list

# 实时监控
perf top

注意事项#

  • Docker容器中通常缺少perf工具,需要手动安装
  • 内核版本与perf版本需要匹配
  • 从源码编译时,新版本GCC可能遇到兼容性问题,使用WERROR=0可以绕过
  • 某些硬件事件在容器中可能不支持(需要<not supported>标记)