You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
镜像
在Linux操作系统中配置网卡中断绑定
复制全文
下载 pdf
在Linux操作系统中配置网卡中断绑定
本文主要介绍如何使用平台提供的irqbalance-ng功能,自动配置物理网卡中断(IRQ,interrupt request)的CPU亲和性(CPU affinity),提升网络性能。​
操作场景​
对于高网络流量场景,可能会出现大量网卡中断集中到某一CPU上,导致数据包收发出现延迟的问题。irqbalance-ng可通过周期性扫描的运行方式,自动检查、配置物理网卡的CPU亲和性(/proc/irq/{irq_id}/smp_affinity),防止CPU在处理网络中断时负载不均,进而提升网络性能。​
同时针对配置了多个Network Namespace的场景,irqbalance-ng支持自动解读各个namespace的网卡信息并为其进行中断绑定。​
注意事项​
本工具暂仅支持在如下镜像中安装使用:​
​
镜像类型​
发行版本​
veLinux​
  • veLinux 1.0 64位​
  • veLinux 2.0 64位​
CentOS​
  • CentOS 7.x 64位​
  • CentOS 8.3 64位​
  • CentOS Stream 9.x 64位​
Ubuntu​
  • Ubuntu 18.04 64位​
  • Ubuntu 20.04 64位​
  • Ubuntu 22.04 64位​
  • Ubuntu 14.04 64位​
Debian​
  • Debian 10 64位​
  • Debian 12 64位​
RHEL(Red Hat Enterprise Linux)​
  • RHEL 7.8 64位​
  • RHEL 8.8 64位​
  • RHEL 9.2 64位​
  • RHEL 9.3 64位​
AlmaLinux​
  • AlmaLinux 8.x 64位​
  • AlmaLinux 9.x 64位​
​
基本概念​
​
概念​
说明​
IRQ​
中断请求(interrupt request),指设备主动发送到CPU的电信号,CPU将停止当前任务处理接收的中断请求。​
irqbalance​
用于帮助平衡所有系统CPU上的中断所产生的CPU负载的一个守护进程。​
CPU affinity​
即CPU亲和性也称CPU绑定,指进程、中断在指定的CPU上长时间运行,不被迁移到其他处理器的倾向性。​
NUMA​
非均匀内存访问架构(Non-Uniform Memory Access)是一种为多处理器的电脑设计的内存架构。内存访问时间取决于内存相对于处理器的位置。​
Network Namespace​
是Linux提供的一种对于系统全局资源的隔离方法,通过将系统的全局资源放在不同的namespace中,来实现资源隔离的目的。不同namespace的程序,可以享有一份独立的系统资源。​
​
操作步骤​
安装irqbalance-ng​
您可以登录目标Linux实例,安装相应操作系统的irqbalance-ng工具。​
​
veLinux
CentOS
Debian
Ubuntu
Red Hat/AlmaLinux
​
  1. 执行如下命令,为镜像配置extra-tools软件源。​
  • ​
    veLinux 1.0
    veLinux 2.0
    ​
    ​
    echo 'deb http://mirrors.ivolces.com/extra-tools/velinux/ orion main' >> /etc/apt/sources.list.d/extra-tools.list​
    wget -O - http://mirrors.ivolces.com/extra-tools/velinux/GPG-KEY-system | apt-key add -​
    ​
    ​
  1. 执行如下命令,更新软件源信息。​
  • ​
    apt-get update​
    ​
  1. 执行如下命令,安装irqbalance-ng。​
  • ​
    apt-get install irqbalance-ng​
    ​
​
管理irqbalance-ng​
查看运行状态​
  1. 执行如下命令,检查irqbalance-ng是否正常运行。​
  • ​
    systemctl status irqbalance-ng.service​
    ​
  • ​​​
配置工具运行规则​
您可以修改irqbalance-ng的配置文件,调整irqbalance-ng检查/调整网卡中断绑定的周期、处理网卡中断的CPU列表等配置。​
  1. 执行如下命令,编辑配置文件。​
  • ​
    vim /etc/default/irqbalance-ng​
    ​
  1. 按i键进入编辑模式,根据需求调整irqbalance-ng配置。​
  • ​​​
  • 参数说明​
  • ​
    参数​
    说明​
    取值样例​
    debug​
    irqbalance-ng服务打印日志级别。支持配置:​
    • 0:表示打印error级别日志。​
    • 1:默认,表示打印info及error级别日志。​
    • 2:表示打印debug、info及error级别日志。​
    说明​
    irqbalance-ng日志存储路径为:/var/log/irqbalance-ng.log.​
    1​
    distinguish​
    默认设置,请勿调整。​
    1​
    peroid​
    irqbalance-ng检查/调整网卡中断绑定的周期,默认为60,单位为秒。​
    60​
    cpu_lists​
    指定特定的CPU处理网卡中断,默认值为""表示全部CPU。您可以传入多个CPU ID,并用,(逗号)分隔,其中可以用-表示一段连续的CPU ID。​
    说明​
    您可以执行lscpu、numactl --hardware或lshw命令,查看CPU ID。以lscpu命令为例,0-7表示八个CPU的ID为0、1、2、3、4、5、6、7。​
    ​​​
    "1,4,5,10-15,20"​
    lib_path​
    软件包安装的库文件路径,不建议修改。​
    -​
    net_path​
    镜像中网络接口相关文件路径,不建议修改。​
    -​
    cpu_path​
    镜像中CPU设备文件路径,不建议修改。​
    -​
    numa_path​
    镜像中NUMA文件路径,不建议修改。​
    -​
    ​
  1. 按ecs键,输入:wq按回车键,保存修改并退出文件。​
  1. 修改完成后,执行如下命令重启irqbalance-ng,修改的配置才会生效。​
  • ​
    systemctl restart irqbalance-ng​
    ​
  1. 您可以执行如下命令,查看中断与CPU的绑定信息。​
本命令通过/proc/interrupts查看中断信息,同时结合cat /proc/irq/$i/smp_affinity_list设置/读取中断的CPU亲和性,您可以结合实际场景对命令进行调整。​
  • ​
    for i in `cat /proc/interrupts | grep -E "input|output" | awk -F ' ' '{print $1}' | awk -F ':' '{print $1}'` ;do echo "irq_"$i ":" `cat /proc/irq/$i/smp_affinity_list` ;done​
    ​
  • ​​​
停止irqbalance-ng​
您可以执行如下命令,暂停irqbalance-ng周期性进行中断绑定。​
​
systemctl stop irqbalance-ng.service​
​
您还可以执行如下命令,取消irqbalance-ng开机自动运行。​
​
systemctl disable irqbalance-ng.service​
​
卸载irqbalance-ng​
  • CentOS/AlmaLinux/RHEL​
  • ​
    yum remove irqbalance-ng​
    ​
  • Debian/Ubuntu​
  • ​
    apt-get remove --purge irqbalance-ng​
    ​
​
最近更新时间:2026.07.22 18:38:30
这个页面对您有帮助吗?
有用
有用
无用
无用