👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
操作场景
注意事项
镜像类型 | 发行版本 |
veLinux |
|
CentOS |
|
Ubuntu |
|
Debian |
|
RHEL(Red Hat Enterprise Linux) |
|
基本概念
概念 | 说明 |
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
veLinux
执行如下命令,为镜像配置extra-tools软件源。
veLinux 1.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 -
veLinux 2.0
echo 'deb http://mirrors.ivolces.com/extra-tools/velinux/ lyra main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/velinux/GPG-KEY-system | apt-key add -
执行如下命令,更新软件源信息。
apt-get update
执行如下命令,安装irqbalance-ng。
apt-get install irqbalance-ng
CentOS
执行如下命令,为镜像配置extra-tools软件源。
CentOS 7.x
echo -e '[extra-tools]\nname= extra-tools\nbaseurl=http://mirrors.ivolces.com/extra-tools/centos/7/rpms/\nenabled=1\ngpgcheck=0' >> /etc/yum.repos.d/extra-tools.repo
CentOS 8.3
echo -e '[extra-tools]\nname= extra-tools\nbaseurl=http://mirrors.ivolces.com/extra-tools/centos/8/rpms/\nenabled=1\ngpgcheck=0' >> /etc/yum.repos.d/extra-tools.repo
CentOS Stream 9.x
echo -e '[extra-tools]\nname= extra-tools\nbaseurl=http://mirrors.ivolces.com/extra-tools/centos/9/rpms/\nenabled=1\ngpgcheck=0' >> /etc/yum.repos.d/extra-tools.repo
执行如下命令,更新缓存。
yum makecache
执行如下命令,安装irqbalance-ng。
yum -y remove irqbalance yum -y install irqbalance-ng
Debian
执行如下命令,为镜像配置extra-tools软件源。
Debian 10
echo 'deb http://mirrors.ivolces.com/extra-tools/debian/ buster main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/debian/GPG-KEY-system | apt-key add -
Debian 12
echo 'deb http://mirrors.ivolces.com/extra-tools/debian/ bookworm main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/debian/GPG-KEY-system | apt-key add -
执行如下命令,更新软件源信息。
apt-get update
执行如下命令,安装irqbalance-ng。
apt-get install irqbalance-ng
Ubuntu
执行如下命令,为镜像配置extra-tools软件源。
Ubuntu 18.04
echo 'deb http://mirrors.ivolces.com/extra-tools/ubuntu/ bionic main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
Ubuntu 20.04
echo 'deb http://mirrors.ivolces.com/extra-tools/ubuntu/ focal main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
Ubuntu 22.04
echo 'deb http://mirrors.ivolces.com/extra-tools/ubuntu/ jammy main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
Ubuntu 24.04
echo 'deb http://mirrors.ivolces.com/extra-tools/ubuntu/ noble main' >> /etc/apt/sources.list.d/extra-tools.list wget -O - http://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
执行如下命令,更新软件源信息。
apt-get update
执行如下命令,安装irqbalance-ng。
apt-get install irqbalance-ng
Red Hat(RHEL)
执行如下命令,下载irqbalance-ng工具安装包。
Red Hat 7.8
wget http://mirrors.ivolces.com/extra-tools/centos/7/rpms/irqbalance-ng-1.0.21-1.ve.noarch.rpm
执行如下命令,安装irqbalance-ng。
rpm -e irqbalance-ng irqbalance || true rpm -ivh irqbalance-ng-1.0.21-1.ve.noarch.rpm
Red Hat 8.8
执行如下命令,下载irqbalance-ng工具安装包。
wget http://mirrors.ivolces.com/extra-tools/centos/8/rpms/irqbalance-ng-1.0.21-1.ve.noarch.rpm
执行如下命令,安装irqbalance-ng。
rpm -e irqbalance-ng irqbalance || true rpm -ivh irqbalance-ng-1.0.21-1.ve.noarch.rpm
Red Hat 9.2/9.3
执行如下命令,下载irqbalance-ng工具安装包。
wget http://mirrors.ivolces.com/extra-tools/centos/9/rpms/irqbalance-ng-1.0.21-1.ve2.noarch.rpm
执行如下命令,安装irqbalance-ng。
rpm -e irqbalance-ng irqbalance || true rpm -ivh irqbalance-ng-1.0.21-1.ve2.noarch.rpm
管理irqbalance-ng
查看运行状态
登录目标Linux实例。
执行如下命令,检查irqbalance-ng是否正常运行。
systemctl status irqbalance-ng.service
配置工具运行规则
登录目标Linux实例。
执行如下命令,编辑配置文件。
vim /etc/default/irqbalance-ng
按i键进入编辑模式,根据需求调整irqbalance-ng配置。
参数 | 说明 | 取值样例 |
debug | irqbalance-ng服务打印日志级别。支持配置:
说明 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文件路径,不建议修改。 | - |
按ecs键,输入:wq按回车键,保存修改并退出文件。
修改完成后,执行如下命令重启irqbalance-ng,修改的配置才会生效。
systemctl restart irqbalance-ng
您可以执行如下命令,查看中断与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
systemctl stop irqbalance-ng.service
systemctl disable irqbalance-ng.service
卸载irqbalance-ng
CentOS/RHEL
yum remove irqbalance-ng
Debian/Ubuntu