性能|网络工具 Iperf

979 阅读4分钟

Iperf 是一个网络性能测试工具,用于测量带宽和吞吐量。它可以生成网络流量,并提供有关数据传输速度、延迟和丢包率等方面的详细统计信息。

根据操作系统版本,下载Iperf工具

##获取操作系统信息
uname -a
cat /proc/version
##解压工具包
rpm -ivh iperf3-3.1.3-1.fc24.x86_64.rpm

TCP 单向测试

## 服务端 10.11.3.1
iperf3 -s
##默认端口是 5201
## 客户端 10.11.3.2
iperf3 -c 10.11.3.1
## 可以通过 -t 控制测试的时间间隔
iperf3 -c 10.11.3.1 -t
  1. Interval:测试的时间间隔。通常,iperf3 会将整个测试分成多个时间间隔,并在每个时间间隔结束时提供统计数据。
  2. Transfer:数据传输的量。它包括传输的字节数和单位(例如,Bytes、Kilobytes、Megabytes)。
  3. Bandwidth:带宽,也称为数据传输速率。它表示在测试期间传输的数据量。通常以每秒传输的数据量为单位(例如,Bits/s、Kilobits/s、Megabits/s)。
  4. Retr:重传的次数。在数据传输过程中,可能会发生数据包丢失,导致需要进行重传的情况。这个字段显示了重传的次数。
  5. Cwnd:拥塞窗口大小。拥塞窗口是发送方用于控制网络传输速率的一种机制。这个字段显示了拥塞窗口的大小。

结果:

image.png

10s 时间间隔,数据传输量是 54.2M,带宽平均是 45.5M/s

TCP 双向测试

iperf3 -c 10.11.3.1 -d

TCP 多线程测试

## 使用 -P 控制线程数,默认是 1
iperf3 -c 10.11.3.1 -d -P 2

结果: image.png 这里有两个线程,但是可以看出无论是两个线程还是一个线程,他们的总量是差不多的。

常用参数

(1)-s,--server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s

(2)-c,--client host:iperf客户端模式,host是server端地址,eg:iperf -c 222.35.11.23

(3)-i,--interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2

(4)-p,--port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。

(5)-u,--udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。

(6)-l,--len:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。

(7)-b,--bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。

(8)-t,--time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。

(9)-A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。

数据传输量和带宽大小由哪些因素决定

  1. 网络带宽:数据传输量和带宽大小受限于网络连接的可用带宽。如果你的网络连接具有更高的带宽,iperf3 将能够传输更多的数据并提供更高的带宽。
  2. 网络延迟:网络延迟是数据从发送方传输到接收方所需的时间。较高的延迟可能会影响数据传输量和带宽。较高的延迟意味着在单位时间内发送的数据包较少,从而降低了传输量和带宽。
  3. 网络拥塞:网络拥塞是指在网络中存在过多的数据流量,导致网络性能下降和数据传输延迟增加。当网络拥塞时,数据传输量和带宽可能会受到限制,并且无法达到网络的最大潜力。
  4. 硬件设备:iperf3 的数据传输量和带宽还受到参与测试的计算机、网络设备和操作系统的性能影响。较快的处理器、更高的内存和更快的网络接口可以提供更高的数据传输量和带宽。
  5. iperf3 参数设置:iperf3 提供了一些参数选项,可以影响数据传输量和带宽的大小。例如,你可以设置测试时间、报文大小、并发连接数等参数,以控制数据传输的规模和速率。

应用场景

有两个安全域 A 和 B, 现在有一个 A->B 上报的需求,但是目前有延迟,不知道是不是网络的问题,可以使用 iperf3 工具测试 A 区域的机子 A1 到 B 区域的机子B1, 得到对应的 bandwidth 结果;再 测试 A1 到 A2 得到对应的 bandwidth 结果,进行对比,理想的情况下是两个相差的差不多,因为是跨域流量,所以肯定是有网络消耗的。