第 5 章 为高吞吐量调优 TCP 连接


在 Red Hat Enterprise Linux 上调优与 TCP 相关的设置以提高吞吐量、缩短延迟或防止诸如数据包丢失等问题。

5.1. 使用 iperf3 测试 TCP 吞吐量

iperf3 工具提供了服务器和客户端模式,来在两个主机之间执行网络吞吐量测试。

注意

应用程序的吞吐量取决于许多因素,如应用程序使用的缓冲区大小。因此,测试工具(如 iperf 3)测量的结果可能与生产工作负载下服务器上应用程序的测量结果有很大不同。

先决条件

  • iperf3 软件包已安装在客户端和服务器上。
  • 任何一个主机上都没有其他服务导致对测试结果产生严重影响的网络流量。
  • 对于 40 Gbps 和更快的连接,网卡支持 Accelerated Receive Flow Steering(ARFS),且该功能在接口上已启用。

流程

  1. 可选:显示服务器和客户端上网络接口控制器(NIC)的最大网络速度:

    # ethtool enp1s0 | grep "Speed"
       Speed: 100000Mb/s
  2. 在服务器上:

    1. 临时在 firewalld 服务中打开默认的 iperf3 TCP 端口 5201 :

      # firewall-cmd --add-port=5201/tcp
    2. 在服务器模式下启动 iperf3

      # iperf3 --server

      服务现在等待传入的客户端连接。

  3. 在客户端中:

    1. 开始测量吞吐量:

      # iperf3 --time 60 --zerocopy --client 192.0.2.1
      • --time <seconds> :定义客户端停止传输时的时间(以秒为单位)。

        将此参数设置为您希望工作的值,并在稍后的测量中增加它。如果客户端以比传输路径上的设备,或者服务器可以处理的速度更快的速度终止数据包,则数据包可以被丢弃。

      • --zerocopy :启用零复制方法,而不是使用 write() 系统调用。只有在您要模拟可零复制的应用程序或在单个流上达到 40 Gbps 及更多时,才需要这个选项。
      • --client <server>:启用客户端模式,并设置运行 iperf3 服务器的服务器的 IP 地址或名称。
  4. 等待 iperf3 完成测试。服务器和客户端都显示每秒的统计信息,并在结尾显示总结。例如,以下是客户端上显示的总结:

    [ ID] Interval         Transfer    Bitrate         Retr
    [  5] 0.00-60.00  sec  101 GBytes   14.4 Gbits/sec   0   sender
    [  5] 0.00-60.04  sec  101 GBytes   14.4 Gbits/sec       receiver

    在这个示例中,平均比特率为 14.4 Gbps。

  5. 在服务器上:

    1. Ctrl+C 停止 iperf3 服务器。
    2. 关闭 firewalld 中的 TCP 端口 5201:

      # firewall-cmd --remove-port=5201/tcp
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部