移植并使用Iperf3测试ARM Linux网口带宽
一、背景
iperf3 是一款开源网络性能测试工具,用于测量网络带宽、延迟、抖动、丢包率等指标。它是 iperf 工具的第三代版本,专注于网络吞吐量和稳定性的测试与分析。
可用于千兆甚至万兆以太网口的传输测试。
二、linux板卡上iperf3移植
2.1 源码下载
下载链接:https://downloads.es.net/pub/iperf/
本文以3.0.3版本为例:

2.2 解压
在ubuntu本地创建一个目录,将源码解压至该目录,例如:
mkdir ~/iperf #创建存储目录
cp iperf-3.0.3.tar.gz ~/iperf #将源码copy至存储目录
cd ~/iperf #进入目录
ar xzf iperf-3.0.3.tar.gz #解压
cd iperf-3.0.3/ #进入目录
2.3 配置交叉编译链
需要配置使用目标板用的交叉编译工具对源码进行编译,这里我的目标板卡的交叉编译工具为arm-linux-gnueabihf
交叉编译工具链一定要选择正确,否则无法在目标板卡上运行,不知道的可以参考驱动编译的编译工具
mkdir ../install #新建安装目录,编译成功后的bin 和lib都将保存在这里
./configure --host=arm-none-linux-gnueabihf --prefix=/home/stairmed/iperf/install #设置存储路径
其中,
-
–host: 指定交叉编译工具,一般为arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具体要和目标板用的交叉编译工具对应。
-
–prefix: 指定安装目录,编译后的文件会全部放在安装目录中。必须是绝对路径!
2.4 编译
$ make # 编译,如果是多核CPU,如四核,使用make -j4可提高编译速度
$ make install # 安装
完成后,文件会自动安装到上面指定的 install 目录。
2.5 打包
tar jcf iperf-3.0.3.tar.bz2 bin lib # 压缩bin和lib目录
2.6 复制至目标板卡的根文件系统
将打包后的 iperf-3.0.3.tar.bz2 压缩包通过U盘、FTP或者NFS等方式拷贝到目标板,并分别解压到/bin和/sbin目录。可以选择:
-
直接将该压缩文件解压至本地的 rootfs镜像usr/bin和usr/lib目录,然后将rootfs替换TF卡的EXT4分区
-
将压缩文件copy至fat分区,进入系统后再解压至usr/bin和usr/lib目录
$ tar jxf iperf-3.0.3.tar.bz2 bin -C /usr # 解压镜像到/usr/bin
$ tar jxf iperf-3.0.3.tar.bz2 lib -C /usr # 解压库文件到/usr/lib
注意:不要直接将压缩包解压缩至fat32分区,然后copy至对应目录,否则有可能会出现以下错误信息:
iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory
三、ubuntu本地下载
直接使用apt工具下载:
sudo apt-get install iperf3
一定得是iperf3,与板卡version一致
四、使用
板卡和主机设置在同一个网段。例如板卡:192.168.52.10,主机:192.168.52.11.
4.1 在ubuntu启动服务器iperf
iperf3 -s -i 1
参数说明:
-
-s:以服务器方式启动
-
-i:以秒为单位显示报告间隔
-
-w:指定TCP窗口大小,默认是8KB
4.2 在板卡启动客户端
$ iperf3 -c 192.168.52.11 -i 1 -w 448k -t 10
参数说明:
-
-c:以client模式启动,随后跟着服务器的IP地址
-
-t:测试时间,默认10秒
4.3 测试结果
客户端:

可以看到在我的板卡上,带宽可以跑到近800Mbps。

浙公网安备 33010602011771号