介绍
Iperf 是一个基于命令行的网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。iperf 分为两种版本,unix/linux版和windows版,unix/linux版更新比较快,版本最新。windows版更新慢。
MiniSMB经过迭代更新,可以直接安装在Windows10上运行,也是是目前Windows下性能最高的网络测试工具,可以支持小包压力测试、百万级数据会话测试,与iperf相比无须两台机器之间相互发送,MiniSMB可以直接根据用户配置的数据流,按指定的速率发送数据包。
测试目的
一方面通过使用Iperf3去发现与比较我司软件的不足,另一方面也是想测试下Windows版的MiniSMB是否稳定。
测试环境
准备两台PC机,配置如下:
硬件性能
Processor Intel Core Processor (Broadwell, IBRS) 3.39 GHz (2 processors)
Installed RAM 4.00 GB
System type 64-bit operating system, x64-based processor
Windows 系统版本
Edition Windows 10 Pro
网卡
英特尔X550T2 1G/2.5G/10G 双端口网卡
测试环境配置如图1所示,准备两台上述配置的Win10 PC机,在这两台PC机上分别安装一块2.5G英特尔网卡,将两台PC机的网卡端口进行直连。
我们将上面一台PC机称为server,设置IP地址为192.168.3.10,下面一台PC机称为client,设置IP地址为192.168.3.11,让client端分别发送60、128、256、512、1024、1280、1500、1514字节长度的报文给予server端,以上为测试环境配置,接下来让我们开始测试。
测试开始
①Iperf3测试
首先在server机输入命令行 Iperf3 -s,-s 代表指定server端,接收数据的一端
接下来在client机输入命令 iperf3 -c 192.168.3.10 -t 100 -i 1 -l 18 -u -b 1000M
其中
-c 192.168.3.10指定client端以及接收端IP地址
-t 100 测试时间
-i 1 指定每次报告之间的时间间隔,单位为秒
-l 18 设置读写缓冲区的长度,单位为 Byte
(注:这边填18是因为数据Data字节长18,加上其他协议包头总长度才为60,所以这边的值就为60-42=18 ,即最后这个包的长度应分别为实验环境配置所示,如果对自己设置的参数不太放心,也可以用抓包工具查看详情,如下图所示
)
-u 表示采用UDP协议发送报文,不带该参数表示采用TCP协议
-b 1000M指定UDP模式使用的带宽,单位bits/sec
测试效果如下:
我们同时需要用命令行测多字节的报文情况,命令行如下:
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 18 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 86 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 214 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 470 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 982 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 1238 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 1458 -u -b 1000M
iperf3 -c 192.168.3.10 -t 100 -i 1 -l 1472 -u -b 1000M
由于iper3的测试数据较为抖动,我们经多次测试,取其中位数,数据内容如下:
通过数据我们不难看出,随着字节数量的上升,其比特率也越来越高,最高达278Mbps/sec,每秒吞吐量维持在两万以上,但不会超过两万五;
② MiniSMB测试
我们在两台PC机上分别打开MiniSMB,分别连接server机与client机的网卡端口
添加一条60字节的流,速度限制在250KPPS(注:因为直连工作在mac层所以无须设置IP地址)
开始打流
从上述流量表我们可以看出,MiniSMB的每秒pps基本为25万左右,比特率在128Mbps且数据较为稳定;
经过对各字节的测试,数据结果如下表:
通过数据我们可以看到,MiniSMB基本最大限度的发挥了2.5G英特尔网卡,且在数据层面精度更高;
数据对比
我们把Iperf3与MiniSMB统计到数据绘制成图标进行观察:
数据表象:
1、在上表中,柱状图代表了吞吐量PPS,折线图代表了比特率Mbps;
2、在吞吐量方面,MiniSMB基本维持在25万左右,在1514字节来到最低值20万左右,而Iperf3则在2万左右抖动,两者最大差值达23万;
3、在比特率方面,MiniSMB最大比特率在2.5Gbps,而Iperf3最大比特率在278Mbps,相差达2.2Gbps;
总结
MiniSMB相对Iperf3的比较:
1、在数据表象上,MiniSMB数据特别是比特率趋于稳定,而Iperf3相对抖动;这是由于MiniSMB借助内核架构的优势,是唯一一款基于Windows内核发包引擎,直接从驱动端获取测试数据,因此大大提高了数据的稳定性;而Iperf3需要从操作系统上调度数据,因此造成了剧烈的抖动;
2、MiniSMB是基于操作界面的网络性能测试工具,而Iperf3则基于命令行;
3、MiniSMB有更详细的数据控制台(可以直观查阅到包括长度、UDP、CheckSum等),而Iperf3则需要翻阅命令行查看;
以上为网络测试工具Iperf3与MniSMB在Win10下的比较,感谢大家的翻阅,再会。