本文描述了公共镜像对网卡多队列功能的支持情况,以及如何开启网卡多队列功能。
当前,只有部分公共镜像默认开启了网卡多队列功能。对于支持网卡多队列功能但是默认未开启该功能的公共镜像,您可以手动开启该功能或者配置该功能的自动开启。
下表列出了支持网卡多队列功能的公共镜像以及默认开启该功能的公共镜像。
支持网卡多队列的公共镜像 | 默认开启网卡多队列的公共镜像 |
---|---|
CentOS 7.2/7.3/7.4/7.5/7.6/7.8/7.9/8.3 64位 | CentOS 7.2/7.3/7.4/7.5/7.6/7.8/7.9/8.3 64位 |
Ubuntu 16.04/18.04/20.04 LTS 64位 | Ubuntu 18.04/20.04 LTS 64位 |
Debian 9/10/11/12 64位 | Debian 10/11/12 64位 |
Windows 2012 R2 STD 标准版 64位、Windows 2016 STD 标准版 64位、 | 不支持默认开启 |
veLinux 1.0(CentOS兼容版)64位 | veLinux 1.0(CentOS兼容版)64位 |
对于支持网卡多队列功能但是默认未开启该功能的Linux边缘实例,您可以登录边缘实例来手动开启该功能。
以下内容以Debian 9为例进行说明。假设边缘实例有eth0、eth1两张网卡。
运行 ethtool -l <网卡名>
命令查看网卡支持的最大队列数和已开启的队列数。以下内容以eth0为例。
# ethtool -l eth0 Channel parameters for eth0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 32 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 1
说明
Pre-set maximums
中的Combined
字段表示该网卡支持的最大组合队列数。Current hardware settings
中Combined
字段表示该网卡当前使用的组合队列数。Current hardware settings
中Combined
字段的取值等于1,则表示eth0网卡还未开启多队列功能。该情况下,请继续执行后续步骤。Current hardware settings
中Combined
字段的取值大于1,则表示eth0网卡已开启多队列功能。该情况下,您无需执行后续步骤。使用 ethtool -L <网卡名> combined <队列数>
命令开启网卡的多队列功能并设置开启的组合队列数。以下内容以为eth0开启32个组合队列为例。
# ethtool -L eth0 combined 32
查看网卡多队列功能是否设置成功。
# ethtool -l eth0 Channel parameters for eth0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 32 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 32
使用相同的方式为eth1网卡开启多队列功能。
注意
边缘实例重启后,多队列功能的配置会丢失。建议您配置该功能的自动开启。
将以下内容写入到开机脚本中。这样,在边缘实例启动或重启时,网卡多队列功能可以自动开启。开启的组合队列的数量为网卡支持的最大组合队列数量。
#!/bin/bash nics=$(ip link | grep -v 'lo: ' | grep '^[0-9]' | awk -F':' '{print $2}') for nic in $nics; do queue=$(ethtool -l $nic | grep Combined: | awk '{print $2}' | head -1) if [ x"$queue" = x ]; then continue fi if [ $queue -gt 1 ];then ethtool -L $nic combined $queue fi done