Iperf 以太网测试 For LS1043ARDB
简介
Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。
一、开发板安装 Iperf 工具
- 编译 iperf 工具
Flex-builder -c iperf -a arm64 // 编译 iperf 工具
or
flex-builder -c apps -a arm64 // 编译所有 app 工具
- 打包工具
flex-builder -i packapps -a arm64
打包成功后会在 ./build/images 目录下生成一个 app_components_LS_arm64.tgz 压缩包
- 将压缩包发送开发板,方法有很多种,可以使用 scp、wget 或是直接复制到 SD 卡都行,这里我是直接使用 cp 命令复制到 SD 卡的 system 盘中,也就是开发板的根目录中,然后解压:
tar –xf app_components_LS_arm64.tgz
注意:解压时可能会遇到 tar: Error is not recoverable: exiting now 问题的,可能是传输时文件损坏了,可以使用 ls -lh 命令来查看是否损坏了,如果是的话可以重新传输,使用 cp 命令时等一会等待文件传输完成。
4.安装 iperf 工具,解压后重启开发板就可以了
reboot
二、组建局域网
使用 iperf 测试端口的吞吐量前提是两台机器之间能相互 ping 通,两台机器可以是两台开 发板、开发板和 windows 电脑或是开发板和虚拟机 Ubuntu ,要想正确的测试端口吞吐量性 能,就需要比这个端口性能更高的端口来测试,这里使用的是 LS1043ARDB 开发板和我的虚 拟机 Ubuntu 18.04
1.给开发板分配 IP 地址
通过表格我们可以知道每个端口的名字,接下来我们以 QSGMII.P0 为例:
查看开发板 IP 并给开发板分配 IP 地址
ifconfig –a
给 fm1-mac1 分配 IP 地址
ifconfig fm1-mac1 192.168.1.100 // 给 fm1-mac1 端口分配IP 地址
ifconfig fm1-mac1 up // 开启 fm1-mac1 端口
ifconfig fm1-mac1 down // 关闭 fm1-mac1 端口
2. 给虚拟机分配 IP 地址
先要对虚拟机网络进行设置选择桥接有线网卡方式
网卡的选择可以通过电脑端查看
设置完后查看 Ubuntu 的 IP 地址,并分配和开发板同网段的 IP 地址
ifconfig
ifconfig enp0s3 192.168.1.101
3. 开发板 ping 虚拟机
ping 192.168.1.101
虚拟机 ping 开发板
ping 192.168.1.100
相互之间能够 ping 通则可以开始使用 iperf 测试
三、使用 Iperf 测试
1.虚拟机作为服务器,开发板作为客户端进行一个最简单的测试
dana@dana:~$ iperf -s
root@localhost:~# iperf -c 192.168.1.101
注意:Iperf 客户端连接 Iperf 服务器的 TCP 默认端口 5001,否则我们可以用 –p 参数修 改 Iperf 服务器的端口,客户端与服务器必须加上同样的端口。结果显示的带宽是从用户到 服务器之间的带宽
2.双向带宽测试
dana@dana:~$ iperf -s
root@localhost:~# iperf -c 192.168.1.101 -r
注意:-r 参数可以量度双向带宽,Iperf 服务器会主动向客户端发起连接。
3.TCP 窗口大小
dana@dana:~$ iperf -s -w 3000
root@localhost:~# iperf -c 192.168.1.101 -w 1500
注意:在连接中,如果接收方来不及验证,数据会暂时被存在一个缓冲区里,这个缓冲区的上限就是所谓的 TCP 窗口大小,窗口的大小可以在 2 到 65,535 bytes 之间
4.UDP 测试
dana@dana:~$ iperf -s -u -i 1
root@localhost:~# iperf -c 192.168.1.101 -u -b 100M
注意:良好的连接质量,数据包的丢失率要小于 1%,数据包的丢失率过高会导致许多 TCP 数据报需要重传,从而影响带宽。Jitter 代表的是延时变化,并不依赖于延时本身,你可能拥有很长的反应时间,但是 Jitter 却很低。
5.按照这个步骤依次对其他六个端口进行测试发现四个 QSGMII 端口和两个 RGMII 端口测的都是 950 Mbits/sec 左右,但是对 10 G 端口测的是 95 Mbits/sec 左右,因为我电脑的端口是千兆网口理论上限制网络吞吐量也应该是 1G 左右,可能是电脑的千兆网口影响了测试结果,需要更高性能的设备来验证。
注:
未经本人允许,不得转载!谢谢!