弹性云主机

开启网卡多队列功能

2025-11-19 02:18:50

操作场景

随着网络IO的带宽不断提升,单核CPU处理网络中断存在瓶颈,不能完全满足网卡的需求,通过开启网卡多队列功能,您可以将弹性云主机中的网卡中断分散给不同的CPU处理,以满足网卡的需求,从而提升网络PPS和带宽性能。

假设以下场景所述的弹性云主机满足规格和虚拟化类型要求:

·     使用网卡多队列支持列表中的公共镜像创建的弹性云主机,默认已开启网卡多队列,无需执行本节操作。

·     对于私有镜像场景,如果您的外部镜像文件的操作系统在网卡多队列支持列表范围内,需要按照如下流程开启网卡多队列:
a. 将外部镜像文件导入镜像服务控制台。
b. 使用私有镜像创建弹性云主机。
c. 执行网卡多队列的配置脚本。

说明

·     云主机开启网卡多队列功能后,如果后续有新增或删除网卡,切换VPC等操作,需要重新对云主机设置网卡多队列。

 

网卡多队列支持列表

网卡多队列的支持情况和实例规格、虚拟化类型、镜像的操作系统有关,只有同时满足这些要求,弹性云主机才能开启网卡多队列功能。

Windows弹性云主机网卡多队列支持列表

镜像

是否支持多队列

是否默认开启多队列

Windows   Server 2008 R2 Standard/Enterprise 64bit

Windows   Server 2012 R2 Standard/DataCenter 64 bit

Windows   Server 2016 Standard/DataCenter 64 bit

Windows   Server 2019 DataCenter 64 bit

Linux弹性云主机网卡多队列支持列表

镜像

是否支持多队列

是否默认开启多队列

Ubuntu   16.04/18.04/20.04/22.04 server 64bit

CentOS   6.8/7.*/8.*64bit

Debian   9.0.0 64bit

Fedora   CoreOS 36 64bit

openEuler   20.03 64bit

CTyunOS   2.0.1/3-23.01 64bit

AnolisOS   7.9/8.4 64bit

将外部镜像文件导入镜像服务控制台

将外部镜像文件导入镜像服务控制台,详细操作请参考镜像服务-用户指南

使用私有镜像创建弹性云主机

使用注册好的私有镜像创建弹性云主机。在配置参数时,需要注意以下两点:

  • 区域:必须选择私有镜像所在的区域。

  • 镜像:选择“私有镜像”,并在下拉列表中选择需要的镜像。

执行网卡多队列的配置脚本

Windows操作系统使用的半虚拟化驱动pvdriver有一套动态调整网卡队列数的策略,会根据vCPU数计算队列数并进行动态调整,因此无需对windows网卡多队列数进行设置。

Linux操作系统提供了自动开启网卡多队列功能的配置脚本,配置成功后,弹性云主机支持网卡多队列功能。

下载配置脚本“multi-queue-ctyun”。

下载地址:https://multi-queue.obs.cn-jssz1.ctyun.cn/multi-queue-ctyun

执行以下命令,添加执行权限。

chmod +x multi-queue-ctyun

执行以下命令,将脚本“multi-queue-ctyun”放到目录/etc/init.d下。

mv multi-queue-ctyun /etc/init.d

执行以下命令,运行脚本“multi-queue-ctyun”。

/etc/init.d/multi-queue-ctyun start

运行脚本后,立即生效。但关机后,网卡多队列功能将自动失效。

为了使网卡多队列功能开机自动生效,各个OS需要增加开机启动配置:

CentOS/Redhat/Fedora/EulerOS/Suse/OpenSuse使用如下命令,增加开机启动项,使网卡多队列配置开机:

chkconfig multi-queue-ctyun on

Ubuntu使用如下命令,增加开机启动项:

update-rc.d multi-queue-ctyun defaults 90 10

Debian使用如下命令,增加开机启动项:

systemctl enable multi-queue-ctyun

查看网卡队列数

  1. 开启网卡多队列功能

  2. 登录弹性云主机。

  3. 执行以下命令,查看网卡支持和已开启的队列数。

ethtool -l 网卡

示例:

[root@localhost ~]# ethtool -l eth0 #查询网卡eth0的队列数

Channel parameters for eth0:
 
Pre-set maximums:
 
RX:               0
 
TX:               0
 
Other:                  0
 
Combined: 4  #表示此网卡最多支持设置开启4个队列
 
Current hardware settings:
 
RX:               0
 
TX:               0
 
Other:                  0
 
Combined: 4 #表示当前开启的是4个队列


dedLLN_7lJea