如何设置镜像的网卡多队列属性?-凯发k8国际娱乐官网入口
操作场景
随着网络io的带宽不断提升,单核cpu处理网络中断存在瓶颈,不能完全满足网卡的需求,通过开启网卡多队列功能,您可以将弹性云服务器中的网卡中断分散给不同的cpu处理,以满足网卡的需求,从而提升网络pps和带宽性能。
网卡多队列支持列表
网卡多队列的支持情况和实例规格、虚拟化类型、镜像的操作系统有关,只有同时满足这些要求,云服务器才能开启网卡多队列功能。
- 支持网卡多队列的实例规格请参见“”。
网卡多队列数为大于1的值,表示支持网卡多队列。
- 虚拟化类型必须为kvm,xen类型不支持网卡多队列。
- 表2所列的linux公共镜像,支持网卡多队列。
- linux操作系统弹性云服务器建议将操作系统内核版本升级至2.6.35及以上,否则不支持网卡多队列。
建议您使用命令uname -r查询内核版本,如果低于2.6.35请联系凯发k8国际娱乐官网入口的技术支持升级内核。
- linux操作系统弹性云服务器建议将操作系统内核版本升级至2.6.35及以上,否则不支持网卡多队列。
类别 |
镜像 |
是否支持多队列 |
---|---|---|
windows |
windows server 2008 web r2 64bit |
可通过私有镜像支持 |
windows server 2008 enterprise sp2 64bit |
可通过私有镜像支持 |
|
windows server 2008 r2 standard/datacenter/enterprise 64bit |
可通过私有镜像支持 |
|
windows server 2008 r2 enterprise 64bit_withgpudriver |
可通过私有镜像支持 |
|
windows server 2012 r2 standard 64bit_withgpudriver |
可通过私有镜像支持 |
|
windows server 2012 r2 standard/datacenter 64bit |
可通过私有镜像支持 |
类别 |
镜像 |
是否支持多队列 |
是否默认开启多队列 |
---|---|---|---|
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操作系统镜像添加网卡多队列标签,开启网卡多队列功能,可能会引起操作系统启动速度变慢等问题。
用户可以选择以下任意一种方式设置镜像的网卡多队列属性。
- 登录ims控制台。
- 登录管理控制台。
- 选择“计算 > 镜像服务”。
进入镜像服务页面。
- 单击“私有镜像”页签,在对应镜像所在行的“操作”列下,单击“修改”。
- 设置镜像的网卡多队列属性。
- 登录ims控制台。
- 登录管理控制台。
- 选择“计算 > 镜像服务”。
进入镜像服务页面。
- 单击“私有镜像”页签,在镜像列表中,单击镜像名称,进入镜像详情页面。
- 单击右上角的“修改”,在弹出的“修改镜像”对话框中,设置镜像的网卡多队列属性。
方法3:通过api为镜像添加网卡多队列标签hw_vif_multiqueue_enabled
- 获取token的方法请参考“”。
- “更新镜像信息”的api使用方法请参考“”。
- 在请求消息头中增加“x-auth-token”。
“x-auth-token”的取值为步骤1中获取的token。
- 在请求消息头中增加“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操作系统暂未商用支持网卡多队列,如果对windows操作系统镜像添加网卡多队列标签,开启网卡多队列功能,可能会引起操作系统启动速度变慢等问题。
针对linux操作系统,镜像服务提供了自动开启网卡多队列功能的配置脚本。如果弹性云服务器有多张网卡,执行配置脚本后,所有网卡均会自动开启多队列。
- 登录弹性云服务器,查看网卡支持和已开启的队列数。
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”字段取值相同,则表示网卡已开启多队列,无需执行以下操作。
- 执行以下命令,下载配置脚本“multi-queue-hw”。
wget https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw
其中,下载地址为:
- 执行以下命令,添加执行权限。
chmod x multi-queue-hw
- 执行以下命令,将脚本“multi-queue-hw”放到目录/etc/init.d下。
mv multi-queue-hw /etc/init.d
如果出现如下提示信息,请输入“y”。
mv: overwrite '/etc/init.d/multi-queue-hw'?
- 执行以下命令,运行脚本“multi-queue-hw”。
/etc/init.d/multi-queue-hw start
运行脚本后,立即生效。但关机弹性云服务器后,网卡多队列功能将自动失效。
- 为了使网卡多队列功能开机自动生效,各个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
- centos/red hat/fedora/euleros/suse/opensuse使用如下命令,增加开机启动项,使网卡多队列配置开机:
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨
more