荔枝派Zero(V3s)| ARM 安装 iperf3.7 测试TCP通信吞吐量

旧城冷巷雨未停 提交于 2019-11-30 11:52:35

1、iperf

iperf是一个基于Client/Server的网络性能测试工具,可以测试TCP、UDP和SCTP带宽质量,能够提供网络吞吐率信息,以及震动、丢包率,最大段和最大传输单元大小等统计信息,帮助我们测试网络性能,定位网络瓶颈。其中抖动和丢包率适应于UDP测试,二带宽测试适应于TCP和UDP。

iperf的好处是纯粹发包和接收,防止硬盘拖后腿,影响测试结果。对于时延,iperf无能无力。但是iperf能够计算抖动。在iperf测试中需要发送大量的包,因此计算出来的抖动值,就是连续发送时延差值的平均值。

iperf是一个开源软件,其源码在GitHub上,地址:https://github.com/esnet/iperf

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

2、安装

2.1 解压

tar xzf iperf-3.7.tar.gz
cd iperf-3.7/

2.2 安装与编译

在主目录下新建安装目录:

mkdir ../iperf_install

进行安装配置:

./configure --host=arm-linux-gnueabihf --prefix=/home/han/iperf_install

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

2.3 编译

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

完成后,文件会自动安装到上面指定的 iperf_install 目录。

2.4 去除调试信息并压缩

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

cd ../iperf_install/                                                  # 进入安装目录
arm-linux-gnueabihf-strip bin/iperf3                     # 去除iperf3镜像调试信息
arm-linux-gnueabihf-strip lib/libiperf.so.0.0.0       # 去除共享库的调试信息
rm lib/libiperf.a lib/libiperf.la                                 # 删除两个不用的库文件
tar cvf iperf-3.7.tar.gz bin lib                               # 压缩bin和lib目录

2.4 移植

将打包后的 iperf-3.7.tar.gz 压缩包通过U盘、FTP或者TFTP等方式拷贝到目标板,并分别解压到/usr/bin和/usr/lib目录,将/usr/bin目录下的iperf3拷贝到/bin目录下即可实用命令。

tar xvf iperf-3.7.tar.gz bin -C /usr
tar xvf iperf-3.7.tar.gz lib -C /usr
cd /usr/bin
cp iperf3 /bin

3 Ubuntu18.04 安装iperf3.7

sudo apt install iperf3

命令行检测版本:

iperf3 -v

4 Ubuntu 与V3s进行测试

4.1 建立网络连接

我使用的是Vmware15,不过其他版本操作都类似。

打开虚拟机,选择 编辑虚拟机设置
在这里插入图片描述

点击左侧网络适配器选项,选择桥接模式,确认后打开虚拟机。
在这里插入图片描述
进入ubuntu后,选择网络设置,点击有线连接后的右侧的设置符号在这里插入图片描述

自定义IP地址,可根据ARM的ip地址设定,必须在同一网段下,至于怎么设置ARM的IP地址,可参考我的另一篇博客(Windows与V3s之间使用TFTP进行文件传输)
在这里插入图片描述打开终端,查看IP地址:

sudo ifconfig

在这里插入图片描述如果ip地址与自己刚才设置的相同,则设置成功,如果不同,则重启Ubuntu一下就OK。

4.2 吞吐量测试

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

iperf3 -s -i 1 $

参数说明:

  • -s:以服务器方式启动
  • -i:以秒为单位显示报告间隔
  • -w:指定TCP窗口大小,默认是8KB
  • &:后台运行

执行后,服务器端显示:
在这里插入图片描述
在目标板上,以客户端方式连接到服务端,测试10秒钟:

iperf3 -c 192.168.0.102 -i 1 -w 8k -t 10

参数说明:

  • -c:以client模式启动,随后跟着服务器的IP地址
  • -t:测试时间,默认10秒

客户端显示:
在这里插入图片描述
以上信息显示,当前网卡传输速度约为 48Mbit/s,下载速度约为 5.6 Mbit/s。

4.3 iperf参数扩展

除了以上参数,我们还可以在iperf中使用下面的参数。

(1)通用参数

  • -f:后接[k|m|K|M],分别表示以Kbits,Mbits,Kbytes,Mbytes显示报告,默认以Mbits以单位
  • -o:将报告和错误信息输出到文件
  • -p:指定服务器端使用的端口或客户端的端口。
  • -u:指定使用udp协议
  • -M:指定TCP数据包的最大mtu值。
  • -N:设定TCP不延迟
iperf3 –c 192.168.0.102 –f K
iperf3 –c 192.168.0.102 -o iperf.log
iperf3 –c 192.168.0.102 –p 1234
iperf3 –s –p 1234

(2)服务器端

  • -D:以服务方式运行iperf,例如,
iperf3 -s –D
  • -R:停止iperf服务,针对-D

(3)客户端

  • -d:同时进行双向传输测试
  • -n:指定传输的字节数
iperf3 -c 192.168.0.102 -n 100000
  • -r:单独进行双向传输测试
  • -F:指定需要传输的文件
  • -T:指定ttl值
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!