嵌入式Linux 使用iperf3同时压力测试4个网口 解决方案

Posted “逛丢一只鞋”

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux 使用iperf3同时压力测试4个网口 解决方案相关的知识,希望对你有一定的参考价值。

iperf

介绍

iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量。

安装iperf

被测Linux板子

板子是Linux环境,一般情况都会有iperf3,在目录 usr/bin 下,可以查找到iperf3

PC主机

因为电脑是windows环境,考虑到使用Ubuntu是虚拟机的状态下运行,会影响到网络的测试,因此直接使用iperf 的windows版本

首先先去iperf官网下载 https://iperf.fr/iperf-download.php


对于windows版的Iperf,直接将解压出来的iperf3.execygwin1.dll复制到C:\\Windows\\System32,这样cmd可以直接打开

iperf使用

Windows打开cmd进入后,测试一下iperf如何使用,以及正常运行是什么状态

基本的使用方法,如果Windows环境就是 iperf3 替换成 iperf3.exe

iperf3 -c 服务端ip -p 监听的端口号 -b 带宽 -i 时间间隔(单位秒) -t 持续时间(单位秒) -R(反向传输) -u(采用udp模式)
选项描述
-F更改运行测试的格式。例如,您可以使用-f k以每秒Kbits而不是每秒Mbits的速度获得结果。有效选项包括m(Mbits,默认),k(Kbits),K(KBytes)和M(MBytes)。
-V强制iPerf使用IPv6而不是IPv4。
-i更改带宽测试之间的间隔。例如,-i 60将每60秒生成一个新的带宽报告。默认值为零,执行一次带宽测试。
-p更改端口。未指定时,默认端口为5001.您必须在客户端和服务器上都使用此标志。
-B将iPerf绑定到特定的接口或地址。如果通过server命令传递,则将设置传入接口。如果通过client命令传递,则将设置传出接口。

然后就是测试一下

单个网口连接(保证两个连接的网卡在同一网段!)测试

服务端(接收,这里接收端是windows环境,所以需要用iperf3.exe)启动:

iperf3.exe -s

客户端(发送)启动;

iperf3 -u -c 192.168.0.2 -i 1 -t 60 -b 100M

以udp模式向服务端 192.168.0.2 发送100M带宽的数据,持续60秒,每秒发送一次报告。

Linux网口初始化配置

板子上存在4个网口,需要配置IP,为了避免一些不必要的麻烦,分别在四个网段

ifconfig eth1 192.168.1.232
ifconfig eth2 192.168.2.232
ifconfig eth3 192.168.3.232


初始化完成之后,就是接下来的测试工作,PC段的四个网卡ip也分别为

192.168.0.2
192.168.1.2
192.168.2.2
192.168.3.2

同时测试4个网口网络性能

Linux板子

Linux板子根据实际的信息流向,三个网口使用udp发送,也就是需要开三个客户端通过UDP发送

对板子的控制因为只能通过串口或者网口,因此没有办法像电脑操作打开多个窗口

使用 后台运行 + 隐藏打印

iperf3 -c 192.168.1.2 -u -p 6001 -t 9999 -b 1000m >/dev/null &
iperf3 -c 192.168.2.2 -u -p 6002 -t 9999 -b 1000m >/dev/null &
iperf3 -c 192.168.3.2 -u -p 6003 -t 9999 -b 1000m >/dev/null &

注意:

  • 因为使用的是UDP,所以要配置数据带宽,-b 1000m,不然速度会很低
  • 将打印信息输出到 >/dev/null,可以不在调试界面打印
  • & 隐藏到后台运行

通过

top

查看cpu占用率以及后台使用情况

jobs -l		


接着就是设置第四个网口,作为服务端,接受数据,使用TCP协议

iperf3 -s -p 6000 >/dev/null &

linux后台运行和关闭、查看后台任务

插播一段linux后台运行和关闭、查看后台任务的命令

fg

将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用

fg %jobnumber(是命令编号,不是进程号)

将选中的命令调出。

ctrl + z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

kill

法子1:通过jobs命令查看job号(假设为num),然后执行

kill %num

法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:Ctrl+c

bg

将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用

bg %jobnumber

将选中的命令调出。

windows 电脑

因为Linux端已经配置完成,所以windows这边对应接受和发送就可以了

首先是三个接收

iperf3.exe -s -p 6001
iperf3.exe -s -p 6002
iperf3.exe -s -p 6003

然后是一个发送

iperf3.exe -c 192.168.0.232 -p 6000 -t 9999

结果

按照设定时间测试完成后,会输出测试结果

以上是关于嵌入式Linux 使用iperf3同时压力测试4个网口 解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用iperf3工具测试以太网口12小时稳定情况

TCP 网络测试工具

iperf3网络性能测试工具及完整版教程

嵌入式Linux/Android疑难杂症工作笔记

如何对现有的 linux 应用程序进行压力测试

iperf3网络测试工具