1.4. 增加 NIC 的传输队列长度,以减少传输错误数


内核在传输数据包前,将它们存储在传输队列中。默认长度(1000 个数据包)通常对于 10 Gbps 足够了,通常对于 40 Gbps 网络也足够了。但是,在更快的网络中,或者遇到适配器上传输错误数增加,请增加队列长度。

流程

  1. 显示当前传输队列长度:

    # ip -s link show enp1s0
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    ...
    Copy to Clipboard Toggle word wrap

    在本例中,enp1s0 接口的传输队列长度(qlen)是 1000

  2. 监控网络接口的软件传输队列丢弃的数据包计数:

    # tc -s qdisc show dev enp1s0
    qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
     Sent 16889923 bytes 426862765 pkt (dropped 191980, overlimits 0 requeues 2)
    ...
    Copy to Clipboard Toggle word wrap
  3. 如果您遇到较高或不断增加的传输错误计数,请设置更高的传输队列长度:

    1. 识别使用此接口的 NetworkManager 连接配置文件:

      # nmcli connection show
      NAME                UUID                                  TYPE      DEVICE
      Example-Connection  a5eb6490-cc20-3668-81f8-0314a27f3f75  ethernet  enp1s0
      Copy to Clipboard Toggle word wrap
    2. 更新连接配置文件,并增加传输队列长度:

      # nmcli connection modify Example-Connection link.tx-queue-length 2000
      Copy to Clipboard Toggle word wrap

      将队列长度设置为当前值的两倍。

    3. 应用更改:

      # nmcli connection up Example-Connection
      Copy to Clipboard Toggle word wrap

验证

  1. 显示传输队列长度:

    # ip -s link show enp1s0
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 2000
    ...
    Copy to Clipboard Toggle word wrap
  2. 监控丢弃的数据包计数:

    # tc -s qdisc show dev enp1s0
    Copy to Clipboard Toggle word wrap

    如果 丢弃 的计数还在增加,请再次加倍传输队列长度。重复此过程,直到计数不再增加。

!:context:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat