使用iperf进行设备吞吐量测试 - 梦想开发的测试猿

时间:2024-02-23 13:25:54

使用iperf进行设备吞吐量测试

工作中遇到一个问题,使用netcat 测试设备wifi吞吐量感觉非常吃力,遂使用iperf进行吞吐量测试。

前提

设备嵌入小linux系统,不可内部编译的情况下,静态编译iperf可方便测试使用。

 

 

工具准备

iperf for linux 2.0.9 (自行静态编译),置于SD卡中方便使用

iperf for windows 2.0.9(这个网上下载就好了)

 

上行吞吐量测试

PC

iperf -s -u -i 1 -p [port]

※参数说明:-s 作为服务端  , -u 进行udp测试 , -p [port] 为端口号,-i  1 为每1秒打印一次结果

 

设备端

./iperf -u -c [PC_IP] -t 60 -i 1 -b 120M -p [port]

※参数说明:-c 作为客户端 , -t 60 持续60秒 , -i 1 每秒打印一次信息 , -b 120M 要求设备以120Mbps 的速度输入数据 , PC_IP即电脑端的IP地址

 

特殊说明:此处 要求设备上行速率必须 >= 设备实际上行速率,比如此处要求以120Mbps速率上传,但设备上行最高速率只能到达88Mbps,实际不影响测试效果。(要求速率过大可能会导致设备卡死

由此可得出设备udp上行带宽为85.5Mbits/sec

 

下行吞吐量测试

设备端:

./iperf -s -u -i 1 -p [port]

 

PC端:

iperf -u -c [PC_IP] -t 60 -i 1 -b 85M

※  此处输入带宽选择应以设备上行速率为基准,例如我们测到设备的上行速率为85.5Mbit/sec ,则此处参数应为  -b 90M 或者 -b 85M,多测几次,直到设备丢包率0%左右。

 

PC端效果图

 

设备端效果图

信息说明:

0 – 60秒里设备总共接受到429MB的数据,包丢失率为29%,设备下行带宽为60MMbits/sec。这里只是展示效果,实际过程中应调节PC端的发包速度,直到丢包率为0%-3%。

 

※  特殊说明

一般情况下,设备的上下行速率应为一致(目前测wifi吞吐量确实如此)。在测试设备有线网络吞吐量时,设备存在上下行吞吐量不等的情况。

包丢失率大:在测设备下行吞吐量时,当 PC端输入数据 > 设备端接收数据 ,会出现丢包。相当于入大于出,设备无法及时处理数据包,从而导致丢包。

 

如有不对,希望大家能够指出,谢谢。