前言
提示:iperf3适用于两台受控的Linux主机,分别对应服务端和客户端。iperf3适用于两台受控的Linux主机,分别对应服务端和客户端。该工具用于测试两台主机之间链路质量和网络设备性能。如果要测试Linux的上网速度,请使用本站介绍的speedtest工具。
1.iperf3介绍
iperf3是一个基于TCP/IP和UDP/IP的网络性能测试工具,用于检测网络带宽使用率和网络质量,能测试最大TCP和UDP带宽性能,可以报告带宽、网络延迟抖动、数据包丢失率和最大传输单元等统计信息等。如测试服务器和网络设备如路由器,交换机,防火墙等的网络性能。iperf3的前身是iperf。
iperf3介绍
2.安装iperfe3
以最小化安装版为例,默认情况下,系统并没有集成该工具,需要手动安装
[root@zcwyou~]iptables-AINPUT-ptcp--dport5201-jACCEPT[root@zcwyou_server~]serviceiptablessave
重启防火墙:
[root@zcwyou_server~]firewall-cmd--zone=public--add-port=5201/tcp[root@zcwyou_client~]iperf3-s
输出结果,默认端口5201
Serverlisteningon5201
Linux启动iperf3网速测试工具
然后,在客户端上指定服务器IP为123.1.1.1,使用-c选项
[root@zcwyou_client~]serviceiptablesstop
CentOS7关闭防火墙:
[root@zcwyou_client~]
输出结果:
,port5201
[4]
[ID]IntervalTransferBandwidthTotalDatagrams
[4]0.00-1.00/sec516
[4]1.00-2.00/sec571
[4]2.00-3.00/sec571
[4]3.00-4.00/sec570
[4]4.00-5.00/sec572
[4]5.00-6.00/sec571
[4]6.00-7.00/sec571
[4]7.00-8.00/sec571
[4]8.00-9.00/sec571
[4]9.00-10.00/sec571
[ID]IntervalTransferBandwidthJitterLost/TotalDatagrams
[4]0.00-10.00//5655(3.7%)
[4]Sent5655datagrams
iperfDone.
Linux使用iperf3指定测试流量测试网速
解释:
-u:指定是udp报文
-b:指定发送带宽大小,案例中是每秒100M。
图6:
4.3限制测试时间
服务器端:
[root@zcwyou_server~]
在udp模式下,以100Mbps为数据发送速率,客户端到服务器123.1.1.1上传带宽测试,测试时间为60秒。
4.4设定连接数
[root@zcwyou_client~]iperf3-s
客户端:
[root@zcwyou_client~]
客户端同时向服务器端发起30个连接线程。
[root@zcwyou_client~]iperf3-s-p2480
客户端:
[root@zcwyou_client~]设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。-l,--len设置端口,与服务器端的监听端口一致。默认是5001端口,与ttcp的一样。-u,--udp使用UDP方式而不是TCP方式。参看-b选项。-w,--window服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。客户端专用选项-b,--bandwidth[KM]传送的缓冲器数量。通常情况,Iperf按照10秒钟发送数据。-n参数跨越此限制,按照指定次数发送指定长度的数据,而不论该操作耗费多少时间。参考-l与-t选项。-r,--tradeoff往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。-t,--time指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。-P,--parallel出栈数据包的服务类型。许多路由器忽略TOS字段。你可以指定这个值,使用以"0x"开始的16进制数,或以"0"开始的8进制数或10进制数。例如,16进制'0x10'=8进制'020'=十进制'16'。TOS值1349就是:IPTOS_LOWDELAYminimizedelay0x10IPTOS_THROUGHPUTmaximizethroughput0x08IPTOS_RELIABILITYmaximizereliability0x04IPTOS_LOWCOSTminimizecost0x02-T,--ttl#出栈多播数据包的TTL值。这本质上就是数据通过路由器的跳数。默认是1,链接本地。-F()使用特定的数据流测量带宽,例如指定的文件。$iperf-c-F[file]-name-I()与-F一样,由标准输入输出文件输入数据。杂项-h,--help显示命令行参考并退出。-v,--version显示版本信息和编译信息并退出。带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。
6.总结
iperf3是一个很好的网络质量压力测试工具,一般用于专线链路质量的检测。它不仅仅可以检测私有网络的质量,更可以检测公网链路的质量。但值得注意的是,该工具需要同时控制客户端与服务器端。
本文已同步至博客站: