一线网络工程师必备:用 iperf3 快速测试 UDP 带宽的实战指南

3 阅读1分钟

本文适用于正在排查网络性能、准备打流测试的企业网络工程师。

使用 iperf3 进行 UDP 测试非常简单。你可以通过以下步骤来启动 UDP 流量的测试。

1. 启动服务器端:

在服务器端运行 iperf3,并指定它以 UDP 模式运行。使用 -s 参数启动服务器:

iperf3 -s -i 1

  • -s:启动服务器模式。

  • -i 1:每秒显示一次统计信息。

2. 启动客户端:

在客户端,你可以通过指定 UDP 模式,目标服务器地址,以及流量带宽来开始 UDP 测试。以下是常见的客户端命令:

iperf3 -c <server_ip> -u -b <bandwidth> -t <time>

  • -c <server_ip>:指定服务器的 IP 地址。

  • -u:指定使用 UDP 测试模式。

  • -b <bandwidth>:指定发送的带宽。例如,-b 1G 表示每秒 1Gbps。

  • -t <time>:测试持续的时间,单位是秒。例如,-t 30 表示 30 秒的测试。

示例:

假设服务器的 IP 地址是 192.168.1.100,你希望发送 500 Mbps 的 UDP 流量,持续 60 秒:

iperf3 -c 192.168.1.100 -u -b 500M -t 60

这将让 iperf3 在 60 秒内从客户端向服务器发送 UDP 流量,并报告每秒的统计信息。

附加参数:

  • -p <port>:指定端口号,默认是 5201。

  • -w <window_size>:指定 UDP 的窗口大小,通常用于控制数据包的发送速率。

如果需要更多控制选项,可以查看 iperf3 的帮助文档:

iperf3 --help

这应该能帮助你顺利进行 UDP 流量的测试!

哪些性能指标需要关注

在使用 iperf3 进行网络性能测试时,以下几个关键性能指标是需要特别关注的,以确保你能全面评估网络的吞吐量、延迟和稳定性等:

1. 带宽(Throughput)

  • 定义:传输数据的速率,通常以 比特每秒(bps)字节每秒(Bps) 表示。

  • 如何查看iperf3 默认会显示每秒传输的总字节数或比特数,通常以 MbpsGbps 为单位。

  • 影响因素:网络链路的负载、丢包率、设备能力等。

示例输出:

[ 5] 0.00-10.00 sec 600 MBytes 500 Mbits/sec

这表示在 10 秒内传输了 600MB,带宽为 500Mbps。

2. 延迟(Latency)

  • 定义:数据包从源头到目的地的传播时间,通常以 毫秒(ms) 为单位。

  • 如何查看:通过 iperf3 测试 UDP 时,延迟通常是每个数据包的响应时间。你可以使用 -u 参数来测试 UDP 延迟。

  • 影响因素:网络路由、数据传输路径、设备处理能力等。

示例输出:

[ 5] 0.00-10.00 sec 15.0 ms 5.0 ms 25.0 ms

这里显示的是延迟的最大、最小和平均值。

3. 丢包率(Packet Loss)

  • 定义:在数据传输过程中丢失的数据包的百分比。对于 UDP 流量,丢包率尤其重要,因为 UDP 不会自动重传丢失的数据包。

  • 如何查看iperf3 会显示 UDP 流量测试的丢包率。

  • 影响因素:网络拥塞、设备资源限制、带宽不足等。

示例输出:

[ 5] 0.00-10.00 sec 5.0% packet loss

这表示在测试期间有 5% 的数据包丢失。

4. 抖动(Jitter)

  • 定义:延迟的变化量。抖动是指数据包之间的延迟波动,对于语音和视频流等实时应用特别重要。

  • 如何查看:在 iperf3 中,UDP 测试会显示抖动的统计信息,通常是以 毫秒(ms) 为单位。

  • 影响因素:网络路径的稳定性、负载波动、网络设备的响应能力等。

示例输出:

[ 5] 0.00-10.00 sec 2.0 ms 1.0 ms 3.0 ms

这里显示的是抖动的最小值、平均值和最大值。

5. TCP 连接的吞吐量(TCP Throughput)

  • 定义:在 TCP 测试中,吞吐量表示数据成功传输的速度。

  • 如何查看iperf3 默认会输出 TCP 的吞吐量数据。

  • 影响因素:TCP 拥塞控制、窗口大小、延迟等。

示例输出:

[ 5] 0.00-10.00 sec 400 MBytes 335 Mbits/sec

这里显示的是 TCP 流量的吞吐量。

6. TCP 的 RTT(Round-Trip Time)

  • 定义:表示数据从发送端到接收端再返回的时间总和,通常以 毫秒(ms) 为单位。

  • 如何查看:通常是通过 TCP 连接测试时来观察 RTT 时间。

  • 影响因素:网络延迟、TCP 拥塞控制等。

示例输出:

[ 5] 0.00-10.00 sec 25.0 ms 15.0 ms 35.0 ms

这是 RTT 的最大、最小和平均值。

7. TCP 连接的拥塞窗口(TCP Congestion Window)

  • 定义:TCP 协议通过控制拥塞窗口的大小来调节流量,避免网络出现拥堵。

  • 如何查看:在使用 iperf3 时,可以使用 -w 参数来设置窗口大小,并观察测试结果中的变化。

  • 影响因素:网络带宽、延迟、丢包等。

8. CPU 使用率(CPU Usage)

  • 定义:测试期间使用的 CPU 资源量,这对于服务器端或客户端的性能瓶颈分析非常有用。

  • 如何查看:可以使用系统的监控工具(如 tophtop)来查看 iperf3 测试期间的 CPU 使用情况。

  • 影响因素:主机性能、并发连接数、数据处理能力等。

总结

iperf3 测试中,UDP 测试的关键指标包括 带宽、延迟、丢包率、抖动。而在 TCP 测试中,最重要的是 吞吐量、RTT拥塞窗口。根据测试目标,你可以根据这些指标来评估网络的性能,并作出优化决策。如果目标是实时应用(如语音或视频流),则丢包率和抖动尤为重要。

如果你经常需要做网络性能测试、进行网络配置,留言**“网络工具”,即可获取免费获取开源网络小工具**(如:拨测、带宽流量技术、子网掩码计算、公有云Region查询)