Linux 网卡多队列配置方法

Linux 网卡多队列配置方法

多队列是指网络接口卡具有在多个发送和接收队列上并行处理网络数据包的能力。在使用网卡多队列时,通常需要配置网络中断亲和性(IRQ Affinity),将不同的队列中断分配给特定的CPU处理,而不是由任意的CPU处理,这有助于减少CPU之间的争用并提高网络性能。本文介绍如何配置Linux系统的网卡多队列的网络中断亲和性和修改网卡多队列数。

配置网络中断亲和性下述操作以Red Hat 9.2镜像系统为例,介绍如何通过ecs_mq脚本自动配置网卡多队列的网络中断亲和性。如果您的系统镜像并非Red Hat Enterprise Linux,已默认开启,则无需再配置。

远程连接Linux实例。(可选)关闭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.tgz最新版ecs_mq修复的问题

执行以下命令,解压ecs_mq脚本。

tar -xzf ecs_mq_2.0.tgz执行以下命令,更换工作路径。

cd ecs_mq/执行以下命令,运行ecs_mq脚本。

bash install.sh redhat 9说明请您根据实际环境替换命令中的 redhat 和 9为您自己的<操作系统名称>和<操作系统主版本号>。执行以下命令,启动ecs_mq脚本。

systemctl start ecs_mq启动脚本后,系统自动启动网络中断亲和性。

修改网卡多队列数执行以下命令,查看主网卡eth0支持多队列的情况。

ethtool -l eth0根据返回结果查看是否支持网卡多队列:

如果 "Pre-set maximums" 下的 "Combined" 值大于1,表示网卡支持多队列。您可以根据这个最大值来设置当前的队列数:执行命令sudo ethtool -L eth0 combined N,其中N是您希望设置的队列数,且N应该小于或等于 "Pre-set maximums" 下的 "Combined" 值。Current hardware settings 下的 Combined 值表示当前生效的队列数。本例中返回表示最多支持2个队列,且当前生效的是1个队列:

Channel parameters for eth0:

Pre-set maximums:

RX: 0

TX: 0

Other: 0

Combined: 2 # 表示最多支持设置2个队列

Current hardware settings:

RX: 0

TX: 0

Other: 0

Combined: 1 # 表示当前生效的是1个队列执行以下命令,设置主网卡使用2个队列功能。

sudo ethtool -L eth0 combined 2执行以下命令,查看辅助弹性网卡eth1支持多队列的情况。

ethtool -l eth1通过返回信息可以看到,辅助弹性网卡已开启支持多队列。您可以按需继续执行下述操作自定义配置辅助弹性网卡的多队列数。

Channel parameters for eth1:

Pre-set maximums:

RX: 0

TX: 0

Other: 0

Combined: 4 # 表示网卡硬件最多可以支持4个队列

Current hardware settings:

RX: 0

TX: 0

Other: 0

Combined: 1 # 表示当前网卡只使用了1个队列执行以下命令,设置辅助弹性网卡使用4个队列功能。

sudo ethtool -L eth1 combined 4References配置网卡多队列的网络中断亲和性及修改网卡多队列数 - Aliyun ECS

相关推荐

淘宝会员等级哪里查?有何计分规则?
365bet怎么提款

淘宝会员等级哪里查?有何计分规则?

📅 08-02 👁️ 4773
除了“白罗斯”,其实还有“黑罗斯”和“红罗斯”
365提款10万一般多久

除了“白罗斯”,其实还有“黑罗斯”和“红罗斯”

📅 08-03 👁️ 2095