移植并使用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目录。可以选择:

  1. 直接将该压缩文件解压至本地的 rootfs镜像usr/bin和usr/lib目录,然后将rootfs替换TF卡的EXT4分区

  2. 将压缩文件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。

posted @ 2025-03-27 15:31  羊的第七章  阅读(793)  评论(0)    收藏  举报