文档首页 > > 用户指南> 网卡>

开启网卡多队列功能

开启网卡多队列功能

分享
更新时间:2021/03/25 GMT+08:00

操作场景

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

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

云服务器开启网卡多队列功能后,如果后续有新增或删除网卡,切换VPC等操作,需要重新对云服务器设置网卡多队列,详细操作请参考执行网卡多队列的配置脚本

网卡多队列支持列表

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

  • 支持网卡多队列的实例规格请参见“规格清单”。

    网卡多队列数为大于1的值,表示支持网卡多队列。

  • 虚拟化类型必须为KVM,XEN类型不支持网卡多队列。
  • 表2所列的Linux公共镜像,支持网卡多队列。
    • Windows操作系统弹性云服务器的驱动pvdriver有一套动态调整网卡队列数的策略,会根据vCPU数计算队列数并进行动态调整,因此无需对windows网卡多队列队列数进行设置。
    • Linux操作系统弹性云服务器建议将操作系统内核版本升级至2.6.35及以上,否则不支持网卡多队列。

      建议您使用命令uname -r查询内核版本,如果低于2.6.35请联系技术支持升级内核。

表1 Windows弹性云服务器网卡多队列支持列表

镜像

是否支持多队列

是否默认开启多队列

Windows Server 2008 R2 Standard 64bit

Windows Server 2008 R2 Enterprise 64 bit

Windows Server 2008 R2 DataCenter 64 bit

Windows Server 2008 Web R2 64 bit

Windows Server 2012 R2 Standard 64 bit

Windows Server 2012 R2 DataCenter 64 bit

Windows Server 2016 Standard 64 bit

Windows Server 2016 DataCenter 64 bit

Windows Server 2019 DataCenter 64 bit

Windows Server 2019 Standard 64 bit

表2 Linux弹性云服务器网卡多队列支持列表

镜像

是否支持多队列

是否默认开启多队列

Ubuntu 14.04/16.04 server 64bit

OpenSUSE 42.2 64bit

SUSE Enterprise 12 SP1/SP2 64bit

CentOS 6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5/7.6 64bit

Debian 8.0.0/8.8.0/8.9.0/9.0.0 64bit

Fedora 24/25 64bit

EulerOS 2.2 64bit

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

将外部镜像文件导入镜像服务控制台,详细操作请参见《镜像服务用户指南》中“注册镜像”章节。导入完成后,在镜像详情页查看“网卡多队列”参数取值。

为镜像添加网卡多队列标签

Windows操作系统暂未商用支持网卡多队列,如果对Windows操作系统镜像添加网卡多队列标签,开启网卡多队列功能,可能会引起操作系统启动速度变慢等问题。

用户可以选择以下任一种方式设置镜像的网卡多队列属性。

方式1
  1. 登录管理控制台。
  2. 选择“计算 > 镜像服务”。
  3. 单击“私有镜像”页签,在对应镜像所在行的“操作”列下,单击“修改”。
  4. 设置镜像的网卡多队列属性。
方式2
  1. 登录管理控制台。
  2. 选择“计算 > 镜像服务”。
  3. 单击“私有镜像”页签,在镜像列表中,单击镜像名称,进入镜像详情页面。
  4. 单击右上角的“修改”,在弹出的“修改镜像”对话框中,设置镜像的网卡多队列属性。

方法3:通过API为镜像添加网卡多队列标签hw_vif_multiqueue_enabled

  1. 获取Token的方法请参考“认证鉴权”。
  2. “更新镜像信息”的API使用方法请参考“更新镜像信息(OpenStack原生)”。
  3. 在请求消息头中增加“X-Auth-Token”。

    “X-Auth-Token”的取值为步骤1中获取的Token。

  4. 在请求消息头中增加“Content-Type”。

    “Content-Type”取值为application/openstack-images-v2.1-json-patch

    请求的URI格式为:

    PATCH /v2/images/{image_id}

    请求的body体如下所示。
    [       
             { 
              "op":"add",
              "path":"/hw_vif_multiqueue_enabled", 
              "value": "true" 
             } 
     ]

    支持网卡多队列修改样例如图1所示。

    图1 支持网卡多队列修改样例

使用私有镜像创建弹性云服务器

使用注册好的私有镜像创建弹性云服务器。在配置参数时,需要注意以下两点:
  • 区域:必须选择私有镜像所在的区域。
  • 镜像:选择“私有镜像”,并在下拉列表中选择需要的镜像。

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

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

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

  1. 下载配置脚本“multi-queue-hw”。

    下载地址:https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw

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

    chmod +x multi-queue-hw

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

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

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

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

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

  5. 为了使网卡多队列功能开机自动生效,各个OS需要增加开机启动配置:
    • CentOS/Redhat/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

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问