性能报告之路由器性能 Benchmark 评估

zuozewei 发表于 2021/11/25 21:57:26 2021/11/25
【摘要】 本报告目的是测试企业内部用的TP-LINK TL-R478G+的性能,是标准的benchmark过程。 这个路由器市场价600块钱左右,定位是中小企业内部使用。 如果是做骨干网级的高端网络设备测试,还有高端的大型硬件网络测试仪。 对于网络设备的测试,在选型、验收这样的目标下,可以参考这篇文章

前言:

本报告目的是测试企业内部用的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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。