网卡多队列指实例规格支持的最大网卡队列数。单台实例vCPU处理网络中断存在性能瓶颈时,您可以将实例中的网络中断分散给不同的CPU处理,从而提升性能。
前提条件
- 您的实例规格必须支持网卡多队列功能。支持多队列的实例规格请参见实例规格族,多队列数值大于1时,表示支持网卡多队列。
公共镜像支持网卡多队列,镜像是否支持网卡多队列与操作系统的位数无关。
背景信息
网卡多队列是一种技术手段,可以解决网络I/O带宽QoS(Quality of Service)问题。网卡多队列驱动将各个队列通过中断绑定到不同的核上,从而解决网络I/O带宽升高时单核CPU的处理瓶颈,提升网络PPS和带宽性能。经测试,在相同的网络PPS和网络带宽的条件下,与1个队列相比,2个队列最多可提升性能达50%到100%,4个队列的性能提升更大。
本文操作仅适用于Linux系统ECS实例。
手动配置
本节以CentOS 7.6镜像为例,假设ECS实例主网卡名称为enp9s0f0,辅助弹性网卡名称为eth1,介绍如何手动配置网卡多队列。
- 运行
ethtool -l
enp9s0f0
命令查看主网卡支持多队列的情况。[root@localhost ~]# ethtool -l enp9s0f0 Channel parameters for eth0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 2 # 表示最多支持设置2个队列 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 1 # 表示当前生效的是1个队列
说明 如果返回信息中,两个Combined字段取值相同,则表示弹性网卡已开启支持多队列。
- 运行
ethtool -L
enp9s0f0 combined 2
命令开启网卡的多队列功能。此命令作用是设置主网卡enp9s0f0使用两个队列。[root@localhost ~]# ethtool -L enp9s0f0 combined 2
- 设置辅助网卡的多队列。
# 查看辅助网卡eth1支持多队列的情况 [root@localhost ~]# ethtool -l enp9s0f0 Channel parameters for enp9s0f0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 4 # 表示最多支持设置4个队列 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 1 # 表示当前生效的是1个队列 # 设置辅助网卡eth1使用4个队列 [root@localhost ~]# ethtool -L eth1 combined 4
实例:
[root@master01 ~]# ethtool -l enp9s0f0
Channel parameters for enp9s0f0:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 12
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 12