Molet

Iperf网络吞吐量/带宽测试的考虑和总结

Molet 运维技术 2022-11-17 493浏览 0

Iperf测试:使用udp设定带宽2M,5M,10M,同时观察对正进行的ping测试的影响。证明iperf使用udp测试/使用一定或最大带宽时,同样能影响tcp协议的流量。

Iperf网络吞吐量/带宽测试的考虑和总结

任务

(1) (使用UDP,参数-u -b 2M)设定不同带宽

#iperf3-c192.168.199.18-p54321-i1-t1800-u-b1M

(2) 双向同时测试(在任一端多开一个iperf port/进程,然后在同一端使用参数-R进行测试)

服务端执行:

#iperf3-s-p54321
#iperf3-s-p54322

客户端执行:

#iperf3-c192.168.199.18-p54321-i1-t1800-u-b1M
#iperf3-c192.168.199.18-p54322-i1-t1800-u-b1M-R

注意事项

TCP协议测试不能计算出时延与丢包率,而且还不能指定发送带宽。

(1) Iperf主要功能:

Iperf可以用来测试网络节点间(也包括回环)TCP或UDP连接的性能,包括测试带宽、抖动以及丢包率,其中抖动和丢包率适应于UDP测试,而带宽测试适应于TCP和UDP。

(2) 双向同时测试方法:在任一端开多一个iperf port/进程(注意Port不同),然后在另一端使用参数-R进行测试

例如:

在测试机A(服务端) 执行:(windows需要打开多一个cmd窗口)

#iperf3-s-p23451
#iperf3-s-p50000

在测试机B(客户端)执行:

#iperf3-c192.168.0.11-p23451-i1-t3600-u-b1M
#iperf3-c192.168.0.11-p50000-i1-t3600-u-b1M-R

(3) Jitter(抖动值)就是连续发送时延差值的平均值

(4) 回环测试iperf是否安装成功

#iperf3-s
-----------------------------------------------------------
Serverlisteningon5201
-----------------------------------------------------------
#iperf3-c127.0.0.1
Connectingtohost127.0.0.1,port5201
[4]local127.0.0.1port58884connectedto127.0.0.1port5201
[ID]IntervalTransferBandwidthRetrCwnd
[4]0.00-1.00sec705MBytes5.92Gbits/sec0560KBytes
…..

(5) 测试吞吐量,抖动和丢包率

如果需要同时测试以上三个参数,那么只能通过UDP获得。使用-u参数进行UDP测试(iperf默认为TCP)。

在测试的最后server端会给出一个报告。

要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。

(6) 一般来说,我们在做性能测试的时候需要指定包长,不同的包长会得到不同的吞吐量,通过-l指定,而使用-b指定带宽。

(7) 使用TCP测试带宽应注意的问题

有时候,我们需要使用TCP来测试网络带宽。这里有一个参数需要特别注意,那就是TCP窗口大小,可以使用-w参数指定。

网络通道的容量capacity = bandwidth * round-trip time

而理论TCP窗口的大小就是网络通道的容量。

比如,网络带宽为40Mbit/s,回环路径消耗时间是2ms,那么TCP的窗口大小不小于40Mbit/s×2ms = 80kbit = 10Kbytes

此时我们可以查询iperf默认的TCP窗口大小来决定是否需要设置此参数,在此例中,窗口大小应设计大于10Kbytes,当然,这仅仅是理论值,在实际测试中可能需要作出调整。

继续浏览有关 网络 的文章
发表评论