性能报告之路由器性能 Benchmark 评估
前言:
本报告目的是测试企业内部用的TP-LINK TL-R478G+的性能,是标准的benchmark过程。
这个路由器市场价600块钱左右,定位是中小企业内部使用。
如果是做骨干网级的高端网络设备测试,还有高端的大型硬件网络测试仪。
对于网络设备的测试,在选型、验收这样的目标下,可以参考这篇文章
- 正文
3.2. 测试目标
测试路由器的如下性能能力:
- WLAN->LAN包转发性能。
- WAN->LAN单工吞吐量。
- LAN->LAN单工吞吐量。
- LAN->LAN双工平均吞吐量。
3.3. 术语和缩略语
术语/缩略词 |
说明 |
包转发率 |
单位是pps(包每秒),每秒钟路由器能转发的数据包的数量 |
吞吐量(带宽) |
待测对象所能达到的最大数据传输速率。单位:Mbps |
3.4.3.网络环境
网络设备 |
带宽 |
型号 |
路由器 |
1000M |
TP-LINK TL-R478G+ |
交换机 |
100M |
华为S3700-28TP-SI(AC) |
3.5. 测试工具
名称 |
说明 |
IxChariot 6.70 |
业界著名的多功能网络业务测试软件 |
Endpoint 7.10 |
充分利用运行主机的资源,执行Chariot控制台发布的Script命令,从而完成需要的测试 |
4.测试执行与结果
4.1. WAN->LAN包转发性能
1. 测试目的
获取待测路由器Wan->Lan所能达到的最大包转发率
2. 测试拓扑
3. 测试条件
性能指标 |
测试条件设置 |
包转发率 |
多条规划,不同数据包大小 数据包:64B、128B、256B、512B、1024B、1514B 多条规划:100规则 协议:TCP |
4. 测试方法
测试软件使用IxChariot,测试脚本采用High_Performance_Throughput,Pair数量为100。IxChariot是一款被普遍使用的网络负载测试工具,对High_Performance_Throughput脚本进行修改,我们可以设置不同大小并让Endpoint1-> Endpoint2发送数据包,Pair数量被设定在100是因为我们在测试中发现一个现象,比如,我们在测试1514B大小的数据包吞吐量时,一个Pair可能只有20Mbps左右,但随着Pair数量的增加,吞吐量也会随之上升,并最终达到吞吐最大值,Pair继续增加,吞吐量也不会出现大的变化。使用100Pairs还有另外一个效果,多Pair在Netstat中看到的效果就是多TCP连接数,在多连接数下,高强度的吞吐测试对路由器性能和稳定性都是一个考验。
包转发率公式如下:(Mbps + 6Mbps) / 8 / (64B、128B、256B…1514B +20B) = Mpps * 1000000 = pps
Mbps指的是路由器的设计带宽,除以8是将bps转化为Byteps,64B指的是以太网最小数据包的大小,20B是每个数据包在传输时的固定损耗,另外,要说明一下,这20B的损耗通过抓包工具是无法捕获的。我们再来看一下pps这个计算公式的计数单位是“个”,因为在1000Mbps除以8之后,此时计数单位就是Byteps了,也就是Byte每秒。再用Byteps除以Byte,所得到的就是pps,第一个p也就是包(package)的意思。包转发率的概念是一个“以数量为基础的概念”,通俗的讲,就是一个以“个”为单位的概念,10pps指的就是每秒转发了10个数据包。
接下来我们反着看一下pps的计算方法,1000Mbps / 8 / (64B+20B)=1.488Mpps。如果我们使用的数据包大于64B会如何?假如是128B,那公式将会变成这样。1760Mbps / 8 / (128B+20B)=1.488Mpps,但我们知道,千兆路由器的设计宽带极限是1000Mbps,不可能超过这个数值,所以如果计算千兆路由器的128B数据包转发率,结果应该是1000Mbps / 8 / (128B+20B)=0.8446Mpps。结果与1.488Mpps相差甚远,这说明产生了传输瓶颈,瓶颈来自于千兆路由器的设计标准,而非来自于包转发性能。
5. 测试步骤
a) 按网络拓扑图进行部署;
b) 配置Console测试IP;
c) 测试脚本采用High_Performance_Throughput,Pair数量为100,数据包大小分别设置为64B、128B、256B、512B、1024B、1514B;
d) 循环执行测试脚本;
e) 测试完毕,记录每一次结果;
6. 测试结果
100Pairs吞吐量测试结果:
1> 这是在64B数据包下测试的结果:6.744Mbps
2> 这是在128B数据包下测试的结果:13.316Mbps
3> 这是在256B数据包下测试的结果:26.292Mbps
4> 这是在512B数据包下测试的结果:51.884Mbps
5> 这是在1024B数据包下测试的结果:84.536Mbps
6> 这是在1514B数据包下测试的结果:84.637Mbps
4.2. WAN->LAN单工吞吐量
1. 测试目的
获取待测路由器Wan->Lan所能达到最大吞吐量
2. 测试拓扑
3. 测试条件
性能指标 |
测试条件设置 |
单工吞吐量 |
多条规划,大数据包 数据包大小:1000KB 多条规划:10规则 协议:TCP |
4. 测试方法
测试软件还是使用IxChariot,测试脚本采用Throughput,Pair数量为10。对Throughput脚本进行修改,我们设置让Endpoint1-> Endpoint2发送大数据包,Pair数量被设定在10,这是因为对于网络情况不稳定、经常出现速度波动的情况来说,在某一时刻测量速度存在一定的不确定因素,我们采用科学测量法来解决这个问题,即采用平均值的方法。将所有测量值汇总在一起可以得到更接近真实数值的结果。
虽然我们可以通过科学测量法减小误差,但由于默认数据包仅为100KB,所以总的数据检测量相对较小。对于带宽比较大的情况,例如100Mbps以上的网络或ISP提供的传输速度较快的时候,使用100KB数据包进行测量得出的结果不太准确。这时就需要通过修改默认数据包的大小以求测量结果更精确,这里我们加大了十倍,即1000KB。
5. 测试步骤
a) 按网络拓扑图进行部署;
b) 配置Console测试IP;
c) 测试脚本采用Throughput,Pair数量为10,数据包大小分别设置为1000KB;
d) 执行测试脚本;
e) 测试完毕,记录结果;
6. 测试结果
下面是1000KB数据包,10Pairs下吞吐量测试结果:289.583 Mbps
4.3. LAN->LAN单工吞吐量
1. 测试目的
获取待测路由器Lan->Lan数据交换所能达到单工最大吞吐量
2. 测试拓扑
3. 测试条件
性能指标 |
测试条件设置 |
单工吞吐量 |
多条规划,大数据包 数据包大小:1000KB 多条规划:10规则 协议:TCP |
4. 测试方法
测试软件使用IxChariot,测试脚本采用Throughput,Pair数量为10。对Throughput脚本进行修改,我们设置让Endpoint1-> Endpoint2发送大数据包,Pair数量被设定在10。修改发送数据包的大小为1000KB。
5. 测试步骤
a) 按网络拓扑图进行部署;
b) 配置Console测试IP;
c) 测试脚本采用Throughput,Pair数量为10,数据包大小分别设置为1000KB;
d) 执行测试脚本;
e) 测试完毕,记录结果;
6. 测试结果
下面是1000KB数据包,10Pairs下吞吐量测试结果:947.992Mbps
4.4. LAN->LAN双工吞吐量
1. 测试目的
获取待测路由器Lan->Lan数据交换所能达到双工最大吞吐量
2. 测试拓扑
3. 测试条件
性能指标 |
测试条件设置 |
双工吞吐量 |
多条规划,大数据包 数据包大小:1000KB 多条规划:10规则(双向各5条) 协议:TCP |
4. 测试方法
4.3节介绍单向测量的方法,也就是只检测中控主机->图形工作站的吞吐量。然而,实际工作中,网络是单工或双工工作也是影响网络速度的主要因素,因此我们还要考虑测试双向PAIR,测量结果会显示出中控主机->图形工作站的速度以及图形工作站->中控主机的速度。
测试软件还是使用IxChariot,测试脚本采用Throughput,Pair数量为10。对Throughput脚本进行修改,我们设置Endpoint1、Endpoint2互相发送大数据包,Pair数量被设定在10。修改发送数据包的大小为1000KB,单向各5Pair。
5. 测试步骤
a) 按网络拓扑图进行部署;
b) 配置Console测试IP;
c) 测试脚本采用Throughput,Pair总量为10,数据包大小设置为1000KB;
d) 执行测试脚本;
e) 测试完毕,记录结果;
6. 测试结果
下面是1000KB数据包,总10Pairs下双向吞吐量测试结果:
总吞吐量为1624.511 Mbps,中控主机->图形工作站的吞吐量为920.337 Mbps,图形工作站->中控主机的吞吐量为768.963 Mbps。
5. 测试分析
5.1. WAN->LAN包转发性能
分析测试结果之前,还要说一下Ixchariot这个测试工具,Ixchariot本身是有损耗的,使用Ixchariot测得的Throughput结果是有效数据负载,不包括TCP协议损耗、包间隔、应答和Ixchariot本身系统损耗,此部分典型损耗根据理论计算约6M,就是说即使你测试的是一台能线速转发的路由器,测出来的Throughput也只可能是94M左右,这是理论极限值,不可能大于这个值,当然这是对百兆路由器而言。但这个损耗也是占用了路由器性能的,所以我们需要在测得的Throughput结果上加6Mbps。
我们分别测试64B、128B、256B、512B、1024B、1514B大小数据包的传输表现,对于测试结果,只要加上Ixchariot的传输损耗(6Mbps)没有超过(路由器)1000Mbps这个极限值,我们便认为,传输瓶颈是来自于包转发性能,而不是路由器的带宽标准。我们需要的,也正是路由器在出现转发瓶颈时的数值。
使用Ixchariot测得的是Mbps,需要将其转换为pps,转换的方法在上面已经说过,
公式:(Mbps + 6Mbps) / 8 / (64B、128B、256B…1514B +20B) = Mpps * 1000000 = pps
下面我们解读上图的测试结果。蓝色的曲线描绘的是bps,可以看到,随着数据包从64B至1514B,bps一路飙升。而pps曲线却不太正常,从按照之前的理论,pps应该是一个波动不大的值,可是这里却从18964跨到7385。而到1514B的时候bps是84.637Mbps,再加上6Mbps的损耗,并未达到路由器1000Mbps的极限值,显然这说明并非来自于路由器的带宽标准,而是包转发性能。
从以前的测试结果来看,bps高的pps一定高吗?其实不然,相反的pps是一个比较稳定的值,在传输大包时,反而会收到宽带标准的制约。从上图的测试结果来看,我们认为,这款路由器的Wan->Lan包转发能力应该在13000-7000之间,在这个测试中,不存在带宽瓶颈的问题。
我们总结一下路由器标称带宽(吞吐量)、实际吞吐量(bps)和包转发率(pps)之间的关系。我们常说的百兆路由器、千兆路由器,这指的就是路由器的标称吞吐量,对于百兆路由器来讲,达到标称吞吐量其实并不是什么难事,只要使用大数据包,我们在测试中使用的1Pair High_Performance_Throughput脚本测出的结果,成绩是非常好看的。但仅凭此,就能说明路由器的性能很好吗?显然不能。
从测试结果中我们可以看出,包转发率(pps)达到7000左右,输大数据包,吞吐量就能达到极限了,但此时,小数据包的转发性能其实也只有19000左右。试想一台包转发率为40000的设备,与包转发率为19000的设备在转发大数据包上,表现会有什么不同吗?似乎不会有任何不同,因为带宽(吞吐量)就是上限。但两者的区别会反应在转发小包时的效率上,在没有到达标称带宽(吞吐量)之前,pps为40000的设备将比pps为19000的要设备快上一倍,当然,这样的设备价钱也会更高。我们关注的核心应该是包转发率(pps),而不应是吞吐量,因为包转发率高了,吞吐量必然高,而吞吐量高,包转发率却不一定高。
在实际应用中,包转发能力十分关键,比如icsBOX里经常控制各种设备,每操作一个动作指令,每转动一下摄像头,转发的全部是小包,这种情况下,不存在标准带宽(吞吐量)瓶颈的问题,考验的仅是路由器的包转发能力。如果路由器包转发能力不强,就很难应付大量小包转发的需求,对于一些时延敏感的应用,操作起来就会很不顺畅。
千兆路由器的包转发率达到了19000pps左右,虽然距理论最大值1488000pps相去甚远,但这一表现到底有多强或有多弱,我们如何判断。比较这两个数字,单从数量级来看,千兆路由器的包转发性能确实够差的,仅为理论值的1.28%左右。包转发率越高越好,但在实际应用中我们真的需要那么高的包转发率吗?对于这点,我们也没有一个判断的标准
5.2. WAN->LAN单工吞吐量
从测试的结果来看,在1000KB数据包、10Pairs下吞吐量测试结果为289.583 Mbps,也就是在1000KB数据包测试中的TH值达到了36.2MB/s。也就是说如果电脑硬盘读写速度够快,那么它下载1G的高清晰电影需要28秒种。
相比千兆路由器理论值的1000 Mbps,实际测试的结果仅为289.583 Mbps,加上Ixchariot本身系统损耗6 Mbps也就295.583 Mbps还不到300 Mbps,这说明这款路由器WAN->LAN单工吞吐量还是比较差的。
下面我们来看看,当时测试过程中路由器CPU使用情况的截图
我们可以看到此时的路由器CPU资源使用率已经是100%,达到了其处理的极限,这是说明这款路由器其在吞吐量上的制约的瓶颈为其CPU。
5.3. LAN->LAN单工吞吐量
从测试的结果来看,在1000KB数据包、10Pairs下LAN口间数据交换数据吞吐量测试结果为947.992Mbps,也就是在1000KB数据包测试中的TH值达到了118.499MB/s。也就是说如果两台局域网内的电脑硬盘读写速度够快,那么他们之间互传一个1G的高清晰电影仅需要8秒种。
千兆路由器LAN口间设计理论值是1000 Mbps,实际测试的结果为947.992 Mbps加上Ixchariot本身系统损耗6 Mbps一起已经很接近了,这表明其LAN口间数据交换能力还是不错的。
5.4. LAN->LAN双工吞吐量
从测试的结果来看,在1000KB数据包,总10Pairs下双向吞吐量测总吞吐量之和为1624.511 Mbps,中控主机->图形工作站的吞吐量为920.337 Mbps,图形工作站->中控主机的吞吐量为768.963 Mbps。中控主机->图形工作站的传输速率要高于图形工作站->中控主机。双工吞吐量的平均值为812.2555 Mbps,要低于中控主机->图形工作站的单工吞吐量,可见路由器在单工状态还是双工状态,在速度上还是有差距的。
6. 测试结论
总体上来说,目前这款全千兆企业级路由器算不上一款性能非常出色的设备,表现较为出色是LAN->LAN之间的数据交换能力,现将相关性能指标汇总如下:
- WLAN->LAN包转发性能:13000~7000 pps
- WAN->LAN单工吞吐量: 295.583 Mbps
- LAN->LAN单工吞吐量: 947.992Mbps
- LAN->LAN双工平均吞吐量: 812.2555 Mbps
- 点赞
- 收藏
- 关注作者
评论(0)