配置网络中断亲和性在使用网卡多队列时,通常需要配置网络中断亲和性(IRQ Affinity),将不同的队列中断分配给特定的CPU处理,而不是由任意的CPU处理,这有助于减少CPU之间的争用并提高网络性能。
说明 除Red Hat Enterprise Linux以外的镜像已默认支持网络中断亲和性,无需再配置。
Red Hat Enterprise Linux镜像支持但未开启网卡多队列的网络中断亲和性,您需要参考本文进行配置。
下述操作以Red Hat 9.2镜像系统为例,介绍如何通过ecs_mq脚本自动配置网卡多队列的网络中断亲和性。如果您的系统镜像并非Red Hat Enterprise Linux,已默认开启,则无需再配置。
远程连接Linux实例。
具体操作,请参见使用Workbench终端连接登录Linux实例(SSH)。
(可选)关闭irqbalance服务。
由于irqbalance服务会动态调整IRQ Affinity,配置ecs_mq脚本会和irqbalance产生冲突,建议关闭irqbalance服务。
systemctl stop irqbalance.service执行以下命令,下载最新版本的网卡多队列的自动配置脚本ecs_mq。
wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/ecs_mq/ecs_mq_2.0.5.tgz最新版ecs_mq修复的问题
最新版ecs_mq相对于旧版ecs_mq修复的问题如下:
根据网卡设备PCIe的NUMA(非统一内存访问)位置,来优先绑定对应的NUMA上的CPU。
优化了多网络设备调优的逻辑。
根据网卡队列数目和CPU数目的比例来进行不同规格的网卡中断绑定逻辑。
优化了根据CPU中sibling的位置进行中断绑定。
解决了旧版绑定中可能跨越NUMA导致的内存访问延迟问题。
默认打开新版开关,同时支持切换新版和旧版的ecs_mq选项开关,切换命令如下:
切换为旧版ecs_mq:ecs_mq_rps_rfs old
切换为新版ecs_mq:ecs_mq_rps_rfs new
说明 新版ecs_mq相对于旧版ecs_mq,在网络性能测试中,针对大部分PPS、BPS,网络性能提升可达到5%~30%。
执行以下命令,解压ecs_mq脚本。
tar -xzf ecs_mq_2.0.5.tgz执行以下命令,更换工作路径。
cd ecs_mq/执行以下命令,运行ecs_mq脚本。
bash install.sh redhat 9说明 请您根据实际环境替换命令中的 redhat 和 9为您自己的<操作系统名称>和<操作系统主版本号>。
执行以下命令,启动ecs_mq脚本。
systemctl start ecs_mq启动脚本后,系统自动启动网络中断亲和性。
修改网卡多队列数和配置网络中断亲和性是用于优化网络性能的不同方法,您需要根据系统的实际负载情况,通过测试不同的配置组合,观察系统性能(如吞吐量、延迟等指标),合理分配多队列到不同的CPU核心,并相应地设置中断亲和性,确保负载均衡。