You need to enable JavaScript to run this app.
导航
网卡多队列
最近更新时间:2024.12.23 14:48:58首次发布时间:2021.10.29 18:50:38

本文描述了公共镜像对网卡多队列功能的支持情况,以及如何开启网卡多队列功能。
当前,只有部分公共镜像默认开启了网卡多队列功能。对于支持网卡多队列功能但是默认未开启该功能的公共镜像,您可以手动开启该功能或者配置该功能的自动开启。

支持网卡多队列功能的公共镜像

下表列出了支持网卡多队列功能的公共镜像以及默认开启该功能的公共镜像。

支持网卡多队列的公共镜像

默认开启网卡多队列的公共镜像

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位、
Windows 2019 STD 标准版 64位

不支持默认开启

veLinux 1.0(CentOS兼容版)64位

veLinux 1.0(CentOS兼容版)64位

手动开启网卡多队列

对于支持网卡多队列功能但是默认未开启该功能的Linux边缘实例,您可以登录边缘实例来手动开启该功能。
以下内容以Debian 9为例进行说明。假设边缘实例有eth0、eth1两张网卡。

  1. 运行 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 settingsCombined字段表示该网卡当前使用的组合队列数。
    • 判断网卡是否开启了多队列功能:
      • 如果Current hardware settingsCombined 字段的取值等于1,则表示eth0网卡还未开启多队列功能。该情况下,请继续执行后续步骤。
      • 如果Current hardware settingsCombined 字段的取值大于1,则表示eth0网卡已开启多队列功能。该情况下,您无需执行后续步骤。
  2. 使用 ethtool -L <网卡名> combined <队列数> 命令开启网卡的多队列功能并设置开启的组合队列数。以下内容以为eth0开启32个组合队列为例。

    # ethtool -L eth0 combined 32
    
  3. 查看网卡多队列功能是否设置成功。

    # 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
    
  4. 使用相同的方式为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