网络丢包带宽测试工具 iperf3 简单认知

2023-09-21 08:22:29 浏览数 (2)

1写在前面

  • iperf3 是一种网络性能测试工具
  • 工作中用到,这里简单介绍
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》

iperf3

iperf3 是一种网络性能测试工具,可以用于测试带宽、吞吐量、丢包 等指标。使用iperf3进行性能测试的基本步骤:

启动iperf3服务器。在要测试的计算机上启动iperf3服务器,以便接受客户端请求。在命令行中执行以下命令:

代码语言:javascript复制
iperf3 -s

该命令将把iperf3服务器启动在默认TCP端口(5201)上,并开始监听客户端连接请求。

在另一个终端窗口中启动iperf3客户端,并连接到服务器。在要测试的另一台计算机上,在命令行中执行以下命令:

代码语言:javascript复制
iperf3 -c <server_ip_address>

其中,"<server_ip_address>"是iperf3服务器的IP地址。这将启动iperf3客户端,并尝试连接到指定的服务器。

进行性能测试。一旦客户端与服务器建立连接,性能测试即可开始。iperf3默认使用TCP协议进行测试,测试时间为10秒。可以使用各种选项和参数来调整测试过程和输出结果。

代码语言:javascript复制
⬢[root@toolbox ~]#  iperf3  -c 192.168.26.1
Connecting to host 192.168.26.1, port 5201
[  5] local 192.168.26.6 port 41866 connected to 192.168.26.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.67 GBytes  23.0 Gbits/sec  3946    401 KBytes
[  5]   1.00-2.00   sec  2.64 GBytes  22.6 Gbits/sec  4408    263 KBytes
[  5]   2.00-3.00   sec  2.68 GBytes  23.0 Gbits/sec  4027    428 KBytes
[  5]   3.00-4.00   sec  2.83 GBytes  24.3 Gbits/sec  3662    381 KBytes
[  5]   4.00-5.00   sec  2.86 GBytes  24.6 Gbits/sec  3212    414 KBytes
[  5]   5.00-6.00   sec  2.79 GBytes  24.0 Gbits/sec  4233    372 KBytes
[  5]   6.00-7.00   sec  2.80 GBytes  24.1 Gbits/sec  4195    428 KBytes
[  5]   7.00-8.00   sec  2.61 GBytes  22.4 Gbits/sec  4121    465 KBytes
[  5]   8.00-9.00   sec  2.76 GBytes  23.7 Gbits/sec  4708    519 KBytes
[  5]   9.00-10.00  sec  2.55 GBytes  21.9 Gbits/sec  4095    445 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  27.2 GBytes  23.4 Gbits/sec  40607             sender
[  5]   0.00-10.00  sec  27.2 GBytes  23.3 Gbits/sec                  receiver

iperf Done.

这是iperf3的测试结果,其中包括:

代码语言:javascript复制
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.67 GBytes  23.0 Gbits/sec  3946    401 KBytes
[  5]   1.00-2.00   sec  2.64 GBytes  22.6 Gbits/sec  4408    263 KBytes
  • ID:iperf3测试任务的标识符。
  • Interval:测试时间间隔。
  • Transfer:传输数据量。
  • Bitrate:传输速率(带宽)。
  • Retr:重传操作次数(丢包数)。
  • Cwnd:TCP拥塞窗口大小。

这两行结果显示了2个1秒钟的测试时间间隔内的性能指标。第一个时间间隔中,传输了2.67GBytes的数据,速率为23.0Gbits/sec,并执行了3946次重传操作。TCP拥塞窗口大小为401KBytes。在第二个时间间隔中,传输了2.64 GBytes的数据,速率为22.6 Gbits/sec,并执行了4408次重传操作。TCP拥塞窗口大小为263 KBytes。通过这些指标,可以了解网络带宽和连接质量等信息。

测试结果

代码语言:javascript复制
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  27.2 GBytes  23.4 Gbits/sec  40607             sender
[  5]   0.00-10.00  sec  27.2 GBytes  23.3 Gbits/sec                  receiver

  • ID:测试流的唯一标识符。
  • Interval:测试的时间间隔,以秒为单位。
  • Transfer:在测试过程中传输的总字节数。
  • Bitrate:传输速率,以比特每秒(bps)为单位。
  • Retr:在测试期间发生的重传次数。
  • Sender:表示此行所列出的结果来自iperf3客户端。
  • Receiver:表示此行所列出的结果来自iperf3服务器。

根据上述iperf3测试的结果,从192.168.26.6到192.168.26.1的连接中,传输速率大约是23.4 Gbits/sec。整个测试持续了10秒钟,期间发送了27.2GB的数据,共进行了40607次重传操作。这个速度非常快,表明网络质量较好,可用于高速数据传输。

在日常的网络测试中,可以通过 Retr 来衡量丢包数。Bitrate 为俗称的带宽,指定时间通吐量可以通过下面的方式确定,

27.2 GBytes = 27.2 * 8 Gbits(将字节转换为比特) 测试持续时间为10秒,平均传输速率或通吐量 = 总传输数据量 / 测试持续时间

(27.2 * 8 Gbits) / 10秒 = 217.6 Gbits / 10秒 = 21.76 Gbits/秒

因此,通过iperf3测试的平均通吐量为每秒21.76 Gbits。

需要注意的是,iperf3也支持其他协议和选项,例如UDP、多线程并发测试和带宽限制等。您可以参考官方文档或手册,以了解更多关于iperf3的用法和示例。

-s:启动iperf3服务器,并等待客户端连接请求。

iperf3 -s -c <server_ip_address>:建立与指定服务器的连接,并进行性能测试。可以使用"-u"选项来执行UDP测试。

iperf3 -c 10.0.0.1 -t <duration>:指定测试的时间长度,以秒为单位。默认值为10秒。

iperf3 -c 10.0.0.1 -t 30 -P <num_threads>:指定并发连接数。每个连接将在单独处理

指定总包大小

代码语言:javascript复制
⬢[root@toolbox ~]#  iperf3  -c 192.168.26.1 -i 40Gbits
Connecting to host 192.168.26.1, port 5201
[  5] local 192.168.26.3 port 36474 connected to 192.168.26.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec  26.0 GBytes  22.4 Gbits/sec  38517    424 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  26.0 GBytes  22.4 Gbits/sec  38517             sender
[  5]   0.00-10.00  sec  26.0 GBytes  22.4 Gbits/sec                  receiver

iperf Done.

指定每秒的包大小

代码语言:javascript复制
⬢[root@toolbox ~]#  iperf3  -c 192.168.26.1 -b 40Gbits
Connecting to host 192.168.26.1, port 5201
[  5] local 192.168.26.3 port 45604 connected to 192.168.26.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.65 GBytes  22.7 Gbits/sec  4347    514 KBytes
[  5]   1.00-2.00   sec  2.77 GBytes  23.8 Gbits/sec  3378    564 KBytes
[  5]   2.00-3.00   sec  2.78 GBytes  23.8 Gbits/sec  2974    516 KBytes
[  5]   3.00-4.00   sec  2.68 GBytes  23.0 Gbits/sec  2967    558 KBytes
[  5]   4.00-5.00   sec  2.64 GBytes  22.7 Gbits/sec  4959    379 KBytes
[  5]   5.00-6.00   sec  2.61 GBytes  22.4 Gbits/sec  3439    459 KBytes
[  5]   6.00-7.00   sec  2.80 GBytes  24.1 Gbits/sec  4277    562 KBytes
[  5]   7.00-8.00   sec  2.66 GBytes  22.9 Gbits/sec  3901    523 KBytes
[  5]   8.00-9.00   sec  2.76 GBytes  23.7 Gbits/sec  3455    519 KBytes
[  5]   9.00-10.00  sec  2.86 GBytes  24.6 Gbits/sec  3459    467 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  27.2 GBytes  23.4 Gbits/sec  37156             sender
[  5]   0.00-10.00  sec  27.2 GBytes  23.4 Gbits/sec                  receiver

iperf Done.
⬢[root@toolbox ~]#

2博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 :)

man iperf3

© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

0 人点赞