ARM Linux稳定性测试工具--网络性能测试工具Iperf

时间:2024-02-18 07:57:44

  Iperf 是一个网络性能测试工具。Iperf 可以测试最大 TCP 和 UDP 带宽性能,具有多种参数和 UDP 特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

  一、Linux端iperf

  1、下载

  下载最新版本源码包,下载地址:http://downloads.es.net/pub/iperf/。本文以 iperf-3.0.3.tar.gz 版本为例。

  2、解压

$ mkdir ~/iperf
$ cp iperf-3.0.3.tar.gz ~/iperf
$ cd ~/iperf
$ tar xzf iperf-3.0.3.tar.gz
$ cd iperf-3.0.3/

  命令中的“~”表示当前用户目录,比如在Linux主机上面工作的用户是:selflag,那么命令中的“~”就代表路径:/home/selflag/目录

  3、配置

$ mkdir ../install
$ export PATH=$PATH:/usr/local/arm-2010q1/bin #交叉编译工具路径加入系统环境变量!
$ ./configure --host=arm-none-linux-gnueabi --prefix=/home/veryarm/iperf/install

  其中,

  • –host: 指定交叉编译工具,一般为arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具体要和目标板用的交叉编译工具对应。
  • –prefix: 指定安装目录,编译后的文件会全部放在安装目录中。必须是绝对路径!

  4、编译安装

$ make                  # 编译,如果是多核CPU,如四核,使用make -j4可提高编译速度
$ make install          # 安装

  5、去除调试信息并压缩

  使用交叉编译工具 strip 去除镜像的调试信息,在不影响使程序使用的情况下,程序大小一般可以减小50%左右。本程序我们仅用到其中2个文件,bin下的iperf3 和 lib下的libiperf.so.0.0.0。

$ cd ../install                                        # 进入安装目录
$ arm-none-linux-gnueabi-strip bin/iperf3              # 去除iperf3镜像调试信息
$ arm-none-linux-gnueabi-strip lib/libiperf.so.0.0.0   # 去除共享库的调试信息
$ rm lib/libiperf.a lib/libiperf.la                    # 删除两个不用的库文件
$ tar jcf iperf-3.0.3.tar.bz2 bin lib                  # 压缩bin和lib目录

  6、复制到目标板

  将打包后的 iperf-3.0.3.tar.bz2 压缩包通过U盘、FTP或者NFS等方式拷贝到目标板,并分别解压到/bin和/sbin目录。

$ cp iperf-3.0.3.tar.bz2 ~                  # 将复制压缩包到目标板用户目录
$ 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

  7、使用 

  iperf有iperf2版本(命令iperf)和iperf3版本(命令iperf3),现在很多Linux系统和目标板系统默认有iperf2,而这两个版本又不能混着用,也就是说,如果服务器运行iperf2,而目标板上运行 iperf3 是无法测试的,会提示“connect failed: Connection refused”错误。有鉴于此,本文重点以新版的 iperf3 为例进行测试。

  (1)电脑安装iperf

  复制第1步下载的源码到电脑上,在Ubuntu(或其他机器)上,使用以下命令安装 iperf3 到电脑上:

$ cd iperf-3.0.3/
$ ./configure
$ make
$ sudo make install

  iperf3程序会自动安装到/usr/local/bin目录下,其共享库则安装到/usr/local/lib/目录下。

  如果运行 iperf 命令时提示“iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory”错误,制作一个软连接可解决,命令如下:

sudo ln -s /usr/local/lib/libiperf.so.0.0.0 /usr/lib/iperf.so.0

  (2)启动服务器iperf

  在Ubuntu上,以服务端方式启动:

$ iperf3 -s -i 1

  参数说明:

  • -s:以服务器方式启动
  • -i:以秒为单位显示报告间隔

  (3)启动客户端

  在目标板上,以客户端方式连接到服务端,测试10秒钟。

$ iperf3 -c 192.168.1.100 -i 1 -w 448k -t 10

  参数说明:

  • -c:以client模式启动,随后跟着服务器的IP地址
  • -i:以秒为单位显示报告间隔
  • -w:指定TCP窗口大小,默认是8KB
  • -t:测试时间,默认10秒

  二、Windows端iperf

  1、下载

  官方下载链接:https://iperf.fr/iperf-download.php

  下载对应自己系统的文件:

  如果你的是 64位系统,请下载 iperf-*-win64.zip

  如果你的是 32位系统,请下载 iperf-*-win32.zip

  2、安装

  将下载好的 iPerf 压缩包解压,然后有两种安装方法,一种是你想要临时使用,一种是长期使用

  长期使用简单粗暴的方法

  将 iperf3.exe 和 cygwin1.dll 文件复制到 C:\Windows 路径下即可,然后 Win键 + R键,输入 cmd 按回车,将会弹出一个窗口,输入 iperf3 --version 按回车,校验是否配置成功,出现如图提示内容,即安装成功

   

   3、启用服务器

  按Win键 + R键,输入 cmd 按回车,打开终端。
  然后输入命令:iperf3 -s -B 0.0.0.0 -p 520 按回车,然后最小化该窗口,请注意不要关闭本窗口!!!
  上述命令参数解释:
  -s 表示以服务器方式启动 iperf
  -B 表示监听指定 IP地址,0.0.0.0 表示监听 本地IP 和 局域网(公网)IP
  -p 表示监听指定 端口,上述我们指定监听的端口号是 520,该参数可有可无,没有该参数时,默认坚挺的端口号是 5201

   

   4、启动客户端

  按Win键 + R键,输入 cmd 按回车,打开终端。
  然后输入命令:iperf3 -c 192.168.200.221 -b 1g -t 10 -i 1 -u -p 520 按回车
  上述命令参数解释:
  -c 表示以客户端方式启动 iperf,使用 iPerf 服务器IP 192.168.3.83 进行测试
  -b 表示估计带宽,就是最高能跑多少,1g 表示估计能跑 1Gbps
  -t 表示持续测试时间,10 表示测试 10s
  -i 表示多少秒输出一次测试结果,1 表示 1s 刷新一次`
  -u 表示用 udp 连接来测速,默认是 tcp 连接测试,因为 tcp 要进行确认,所以不如 udp 测试的准确
  -p 表示测试服务器端口,520 表示测速服务器的端口是 520