首页 帮助中心 新加坡高防服务器 Linux系统中用于磁盘网络监控工具分享
Linux系统中用于磁盘网络监控工具分享
时间 : 2025-01-31 10:52:26 编辑 : 华纳云 阅读量 : 35

BCC是BPF编译器集合,作为一套功能强大的工具可以用于创建丰富的内核跟踪和操作程序。通过扩展BPF实现其功能,是在Linux 3.15中的新功能之一。但是BCC所使用大部分组件都需要Linux 4.1及以上版本。

这些工具不需要第三方内核模块,因为它们完全基于内核内置的 BPF(Berkeley Packet Filter)功能运行,并利用了 Linux 4.x 系列中引入的特性。它们可以用来观察软件的执行情况,帮助用户深入了解系统性能和行为。此外,这些工具由多个性能分析工具组成,每个工具都附带示例文件和手册页,方便用户快速上手和使用。

BCC很适合高级Linux用户,可以帮助用户更轻松使用C的内核检查及Python和lua的前端编写的BPF程序。另外BCC还支持多项任务,如性能分析、监控、网络流量控制等。BCC使用了 Linux 内核4.1或更高版本中添加的功能,并且要求内核应该使用以下标志进行编译:

CONFIG_BPF=y

CONFIG_BPF_SYSCALL=y

# [optional, for tc filters]

CONFIG_NET_CLS_BPF=m

# [optional, for tc actions]

CONFIG_NET_ACT_BPF=m

CONFIG_BPF_JIT=y

# [for Linux kernel versions 4.1 through 4.6]

CONFIG_HAVE_BPF_JIT=y

# [for Linux kernel versions 4.7 and later]

CONFIG_HAVE_EBPF_JIT=y

# [optional, for kprobes]

CONFIG_BPF_EVENTS=y

# Need kernel headers through /sys/kernel/kheaders.tar.xz

CONFIG_IKHEADERS=y

可以使用单个grep命令来检查全部指定内核配置标志,提供全部标志名称作为模式:

grep -E 'CONFIG_BPF=y|CONFIG_BPF_SYSCALL=y|CONFIG_NET_CLS_BPF=m|CONFIG_NET_ACT_BPF=m|CONFIG_BPF_JIT=y|CONFIG_HAVE_BPF_JIT=y|CONFIG_HAVE_EBPF_JIT=y|CONFIG_BPF_EVENTS=y|CONFIG_IKHEADERS=y' /boot/config-$(uname -r)

验证内核标志后,就可以在Linux系统中安装BCC工具。

在Debian主存储库中找到BCC及其工具,源自bpfcc名称为bpfcc-tools、python3-bpfcc、libbpfcc和libbpfcc-dev。

echo deb http://cloudfront.debian.net/debian sid main >> /etc/apt/sources.list

sudo apt-get install -y bpfcc-tools libbpfcc libbpfcc-dev linux-headers-$(uname -r)

Ubuntu上安装BCC工具,可以在Ubuntu universe存储库中找到不同版本:

sudo apt-get 安装 bpfcc-tools linux-headers-$(uname -r)

Fedora 40开始BCC二进制文件开始在标准存储库中使用:

sudo dnf install bcc

RHEL中安装BCC工具,可以在yum存储库中找到:

sudo yum install bcc-tools

Arch Linux中安装BCC工具,可以用pacman命令:

pacman -S bcc bcc-tools python-bcc

OpenSUSE上安装BBC工具:

sudo zypper ref

sudo zypper in bcc-tools bcc-examples

BCC工具都安装在/usr/share/bcc/tools目录下。但是,您也可以从BCC Github存储库(/tools以扩展名结尾)运行它们.py。

ls /usr/share/bcc/tools

用opensnoopopen()工具跟踪所有系统调用:

cd /usr/share/bcc/tools

sudo ./opensnoop

分析 Linux 中的磁盘 I/O 延迟,执行以下命令后等待几分钟再按Ctrl +C结束并查看结果:

sudo./biolatency

用execsnoop工具跟踪正在执行的新进程:

sudo./execsnoop

用ext4slower跟踪ext4文件系统中速度慢于10ms的常见操作,只输出超过阈值的操作:

sudo./ext4slower

使用biosnoop探索磁盘I/O活动:

sudo./biosnoop

分析系统缓存性能:

sudo ./cachestat

用tcpconnect工具每秒监控一次TCP连接:

sudo./tcpconnect

华纳云 推荐文章
Linux Shell 入门与基础脚本技巧 Linux上高CPU负载压力测试方法 如何解决 Yum 数据库磁盘映像格式错误 centos7中设置tomcat权限的具体步骤 锁定Linux终端的高效率方法 排查docker中出现connection refused错误的原因 断开连接后保持远程SSH会话和进程运行的常见方法 Linux中安装进度查看器的一般流程 2025年Linux媒体服务器软件Top3 Linux SSH免密登录设置教程
客服咨询
7*24小时技术支持
技术支持
渠道支持