上云无忧 > 文档中心 > 天翼云弹性云主机开启网卡多队列功能教程
弹性云主机
天翼云弹性云主机开启网卡多队列功能教程

文档简介:
网卡多队列支持列表 虚拟化类型为XEN的弹性云主机,不支持开启网卡多队列。 虚拟化类型为KVM的弹性云主机,使用下表镜像时,支持开启网卡多队列功能。 【注意】 弹性云主机实例规格列表中的“最大带宽/基准带宽”、“最大收发包能力”均需在网卡多队列数达到最大值时达到上限。 KVM云主机网卡多队列支持列表
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

开启网卡多队列功能


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


网卡多队列支持列表

虚拟化类型为XEN的弹性云主机,不支持开启网卡多队列。

虚拟化类型为KVM的弹性云主机,使用下表镜像时,支持开启网卡多队列功能。

【注意】 弹性云主机实例规格列表中的“最大带宽/基准带宽”、“最大收发包能力”均需在网卡多队列数达到最大值时达到上限。

KVM云主机网卡多队列支持列表

类别

镜像

支持度

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 server 32bit

支持

Ubuntu 14.04/16.04 server 64bit

支持

OpenSUSE 13.2/42.2 64bit

支持

SUSE Enterprise 12 SP1/SP2 64bit

支持

CentOS 6.3/6.5/6.8/6.9/7.0/7.1/7.2/7.3/7.4 64bit

支持

Redhat 6.10/7.5 64bit

支持

Debian 8.2.0/8.8.0/9.0.0 64bit

支持

Fedora 24/25 64bit

支持

EulerOS 2.2 64bit

支持


1)Linux系统开启网卡多队列功能

操作步骤

使用Linux操作系统的弹性云主机,本节以CentOS 7.4为例,介绍开启网卡多队列的具体操作:

步骤 1开启网卡多队列功能

1.登录弹性云主机。

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

ethtool -l 网卡

3.执行以下命令,设置网卡当前使用的队列数。

ethtool -L 网卡 combined 队列数

示例:

[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个队列 

 

[root@localhost ~]# ethtool -L eth0 combined 4 #设置eth0网卡开启4个队列

步骤 2(可选)建议开启irqbalance服务,让系统自动调整网卡中断在多个CPU核上的分配。

a)执行以下命令,开启irqbalance服务。

service irqbalance start

b)执行以下命令,查询irqbalance服务状态。

service irqbalance status

如果回显中“Active”字段的值包含“active(running)”,表示irqbalance服务已正常开启,如下图所示。

 

步骤 3(可选)开启中断绑定。

开启irqbalance服务让中断自由调度,网络性能提升。如果提升后的网络性能仍不满足您的预期,可以手动设置弹性云主机操作系统的中断亲和性。

具体操作如下:

执行以下脚本,使得弹性云主机中每个CPU服务一个多队列的中断请求,一对一的对应设置。即一个队列对应一个中断号,一个中断号绑定一个CPU,一一对应。

#!/bin/bash 

service irqbalance stop 

 

eth_dirs=$(ls -d /sys/class/net/eth*) 

if [ $? -ne 0 ];then 

    echo "Failed to find eth*  , sleep 30" >> $ecs_network_log 

    sleep 30 

    eth_dirs=$(ls -d /sys/class/net/eth*) 

fi 

 

for eth in $eth_dirs 

do 

    cur_eth=$(basename $eth) 

    cpu_count=`cat /proc/cpuinfo| grep "processor"| wc -l` 

    virtio_name=$(ls -l /sys/class/net/"$cur_eth"/device/driver/ | grep pci |awk {'print $9'}) 

 

    affinity_cpu=0 

    virtio_input="$virtio_name""-input" 

    irqs_in=$(grep "$virtio_input" /proc/interrupts | awk -F ":" '{print $1}') 

    for irq in ${irqs_in[*]} 

    do 

        echo $((affinity_cpu%cpu_count)) > /proc/irq/"$irq"/smp_affinity_list 

        affinity_cpu=$[affinity_cpu+2] 

    done 

 

    affinity_cpu=1 

    virtio_output="$virtio_name""-output" 

    irqs_out=$(grep "$virtio_output" /proc/interrupts | awk -F ":" '{print $1}') 

    for irq in ${irqs_out[*]} 

    do 

        echo $((affinity_cpu%cpu_count)) > /proc/irq/"$irq"/smp_affinity_list 

        affinity_cpu=$[affinity_cpu+2] 

    done 

done

步骤 4(可选)开启XPS、RPS特性。

xps主要是针对多队列的网卡发送时的优化,当发送一个数据包的时候,它会根据CPU来选择对应的队列。

#!/bin/bash 

# enable XPS feature 

cpu_count=$(grep -c processor /proc/cpuinfo) 

dec2hex(){ 

  echo $(printf "%x" $1) 

eth_dirs=$(ls -d /sys/class/net/eth*) 

if [ $? -ne 0 ];then 

    echo "Failed to find eth* , sleep 30" >> $ecs_network_log 

    sleep 30 

    eth_dirs=$(ls -d /sys/class/net/eth*) 

fi 

for eth in $eth_dirs 

do 

    cpu_id=1 

    cur_eth=$(basename $eth) 

    cur_q_num=$(ethtool -l $cur_eth | grep -iA5 current | grep -i combined | awk {'print $2'}) 

    for((i=0;i<cur_q_num;i++)) 

    do 

        if [ $i -eq $ cpu_count ];then 

            cpu_id=1 

        fi 

        xps_file="/sys/class/net/${cur_eth}/queues/tx-$i/xps_cpus" 

        rps_file="/sys/class/net/${cur_eth}/queues/rx-$i/rps_cpus" 

        cpuset=$(dec2hex "$cpu_id") 

        echo $cpuset > $xps_file 

        echo $cpuset > $rps_file 

        let cpu_id=cpu_id*2 

    done 

done

----结束


2)Windows开启网卡多队列功能

  • 通过管理控制台方式修改镜像的网卡多队列属性

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

方式1:

1.登录管理控制台。

2.单击“计算”下的“镜像服务”。

3.单击“私有镜像”进入对应的镜像列表。

 

4.在镜像所在行的“操作”列下,单击“修改”。

 

5.设置镜像的网卡多队列属性。

方式2:

6.登录管理控制台。

7.单击“计算”下的“镜像服务”。

8.单击“私有镜像”进入对应的镜像列表。

9.在镜像列表中,单击镜像名称,进入镜像详情页面。

 

10.在镜像详情页面单击“修改”,在弹出的“修改镜像”对话框中,设置镜像的网卡多队列属性。

相似文档
  • 登录天翼云账号,进入【用户中心】然后进入【会员信息】页面,点击【自定义设置】,在认证设置中将重点操作认证方式更换为“短信验证码”。点击【提交】即完成开启。
  • 与开启方式相同,只不过关闭时同样需要进行短信认证操作确认为本人操作才能正常关闭。
  • 开启短信验证后,需要做验证的操作有:云主机的关机、重启、重置密码、删除、卸载磁盘;云硬盘的卸载、删除;虚拟私有云的VPC安全组删除规则、EIP解绑和批量解绑、EIP释放和批量释放、VPN删除、NAT网关删除、NAT网关的SNAT规则删除、NAT网关的DNAT规则删除、负载均衡删除、负载均衡停用。 注:短信验证功能一旦开启,所有重点操作统一开启,短信验证的有效期为15分钟,15分钟内做其他操作不需要重复验证。
  • 重启/关机弹性云主机时,长时间处于“正在重启”/“正在关机”状态,怎么办? 如果对弹性云主机执行重启/关机操作,弹性云主机长时间(大于30分钟)处于“正在重启”/“正在关机”状态时,建议执行强制重启/强制关机操作。 1. 登录控制中心。 2. 选择“计算 > 弹性云主机”。 3. 勾选待强制重启/强制关机的弹性云主机,并单击“重启”/“关机”。 4. 系统弹窗提示用户是否要对弹性云主机进行重启/关机操作。 5. 勾选“强制重启”/“强制关机”,确定强制重启/强制关机弹性云主机。 6. 单击“确定”。
  • MSTSC方式登录Windows 2012的弹性云主机,登录失败怎么办? 问题描述: 对于密码鉴权方式创建的Windows 2012弹性云主机,使用初始密码以MSTSC方式登录时,登录失败,系统显示“第一次登录之前,你必须更改密码。请更新密码,或者与系统管理员或技术支持联系”。 可能原因分析: 用户本地使用的计算机(即客户机)操作系统为Windows 10。 由于Windows 10操作系统的自身限制,不能以初始密码直接远程连接操作系统为Windows 2012的弹性云主机。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部