
# 如何设置镜像的网卡多队列属性？
#### 操作场景
随着网络IO的带宽不断提升，单核CPU处理网络中断存在瓶颈，不能完全满足网卡的需求，通过开启网卡多队列功能，您可以将边缘实例中的网卡中断分散给不同的CPU处理，以满足网卡的需求，从而提升网络PPS和带宽性能。
 #### 网卡多队列支持列表
网卡多队列的支持情况和实例规格、虚拟化类型、镜像的操作系统有关，只有同时满足这些要求，边缘实例才能开启网卡多队列功能。
- 支持网卡多队列的实例规格请参见[实例规格](https://support.huaweicloud.com/productdesc-iec/iec_01_1100.html)。
  ![](https://support.huaweicloud.com/iec_faq/public_sys-resources/note_3.0-zh-cn.png)
  网卡多队列数为大于1的值，表示支持网卡多队列。
  
- 虚拟化类型必须为KVM，XEN类型不支持网卡多队列。
- [表1]所列的Linux公共镜像，支持网卡多队列。
  ![](https://support.huaweicloud.com/iec_faq/public_sys-resources/note_3.0-zh-cn.png)
  - Linux操作系统边缘实例建议将操作系统内核版本升级至2.6.35及以上，否则不支持网卡多队列。
  
  - 建议您使用命令**uname -r**查询内核版本，如果低于2.6.35请联系技术支持升级内核。
   
   表1Linux边缘实例网卡多队列支持列表 
  | 类别    | 镜像                                               | 是否支持多队列 | 是否默认开启多队列 |
  |:---|:---|:---|:---|
  | Linux | Ubuntu 14.04/16.04 Server 64bit                  | 是       | 是         |
  | Linux | openSUSE 42.2 64bit                              | 是       | 是         |
  | Linux | SUSE Enterprise 12 SP1/SP2 64bit                 | 是       | 是         |
  | Linux | CentOS 6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5/7.6 64bit | 是       | 是         |
  | Linux | Debian 8.0.0/8.8.0/8.9.0/9.0.0 64bit             | 是       | 是         |
  | Linux | Fedora 24/25 64bit                               | 是       | 是         |
  | Linux | EulerOS 2.2 64bit                                | 是       | 是         |
     
  
 
#### 操作说明
假设以下场景所述的边缘实例满足规格和虚拟化类型要求：
- 使用[网卡多队列支持列表]中的公共镜像创建的边缘实例，默认已开启网卡多队列，无需执行本节操作。
- 对于私有镜像场景，如果您的外部镜像文件的操作系统在[网卡多队列支持列表]范围内，需要按照如下流程开启网卡多队列：
  1. [创建边缘私有镜像]。
  
  2. [为镜像添加网卡多队列标签]。
  
  3. [使用边缘私有镜像创建边缘业务]。
  
  4. [执行网卡多队列的配置脚本]。
   
 
 #### 创建边缘私有镜像
用户可以通过[镜像服务创建边缘私有镜像](https://support.huaweicloud.com/usermanual-iec/iec_02_0502.html)和[边缘实例创建边缘私有镜像](https://support.huaweicloud.com/usermanual-iec/iec_02_0505.html)两种方式创建边缘私有镜像。
 #### 为镜像添加网卡多队列标签
用户可以选择以下方式设置镜像的网卡多队列属性。
1. 登录[IEC控制台](https://console.huaweicloud.com/iecs)。
2. 在左侧导航栏选择"边缘镜像"，单击"私有镜像"页签，在对应镜像所在行的"操作"列下，单击"修改"。
3. 在弹框中，设置镜像的网卡多队列属性。
 
 #### 使用边缘私有镜像创建边缘业务
1. 登录[IEC控制台](https://console.huaweicloud.com/iecs)。
2. 在左侧导航栏选择"边缘镜像"。 进入边缘镜像页面。
   
3. 单击"私有镜像"页签，在对应镜像所在行的"操作"列下，单击"创建边缘业务"。 进入创建边缘业务页面。
   ![](https://support.huaweicloud.com/iec_faq/public_sys-resources/note_3.0-zh-cn.png)
   如何创建边缘业务请参考[创建边缘业务](https://support.huaweicloud.com/usermanual-iec/iec_02_0302.html)。
   
 
 #### 执行网卡多队列的配置脚本
针对Linux操作系统，我们提供了自动开启网卡多队列功能的配置脚本。如果边缘实例有多张网卡，执行配置脚本后，所有网卡均会自动开启多队列。
1. 登录边缘实例，查看网卡支持和已开启的队列数。 **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:         1   #表示当前已开启的是1个队列
   ```
   如果返回信息中，两个"Combined"字段取值相同，则表示网卡已开启多队列，无需执行以下操作。
   
2. 执行以下命令，下载配置脚本"multi-queue-hw"。 **wget** **https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw**
   其中，下载地址为：<https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw>
   
3. 执行以下命令，添加执行权限。 **chmod +x multi-queue-hw**
   
4. 执行以下命令，将脚本"multi-queue-hw"放到目录/etc/init.d下。 **mv multi-queue-hw /etc/init.d**
   如果出现如下提示信息，请输入"y"。
   ```
   mv: overwrite '/etc/init.d/multi-queue-hw'?
   ```
   
5. 执行以下命令，运行脚本"multi-queue-hw"。 **/etc/init.d/multi-queue-hw start**
   运行脚本后，立即生效。但关机边缘实例后，网卡多队列功能将自动失效。
   
6. 为了使网卡多队列功能开机自动生效，各个OS需要增加开机启动配置：
   - CentOS/Red Hat/Fedora/EulerOS/Suse/openSUSE使用如下命令，增加开机启动项，使网卡多队列配置开机： **chkconfig multi-queue-hw on**
     
   
   
   
   - Ubuntu使用如下命令，增加开机启动项： **update-rc.d multi-queue-hw defaults 90 10**
     
   
   
   
   - Debian使用如下命令，增加开机启动项： **systemctl enable multi-queue-hw**
     
    
 
