在容器中使用 BCC
准备 Docker 环境
- 拉取包含 BCC 工具的 Docker 镜像:
sudo docker run --rm -it --privileged -v /lib/modules:/lib/modules:ro -v /sys:/sys:ro -v /usr/src:/usr/src:ro ghcr.io/iovisor/bcc:ubuntu-20.04
--privileged
:赋予容器特权,允许 BCC 工具访问内核。-v /lib/modules:/lib/modules:ro
:挂载宿主机的内核模块。-v /sys:/sys:ro
:挂载宿主机的 sys 文件系统。-v /usr/src:/usr/src:ro
:挂载宿主机的内核源代码。
如果需要使用alpine环境,请执行下面的命令。
sudo docker run --rm -it --privileged -v /lib/modules:/lib/modules:ro -v /sys:/sys:ro -v /usr/src:/usr/src:ro --net=host registry.smtx.io/docker.io/alpine
- 更换 alpine 源为国内镜像源,加速下载。
sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories
- 安装 BCC 工具:
apk add bcc-tools
使用 BCC 工具
- 现在,你可以在容器中使用 BCC 工具进行内核跟踪和性能分析。
- 例如,使用
biolatency
工具跟踪磁盘 I/O 延迟:
biolatency
- 其他 BCC 工具的使用方法请参考 BCC 文档。