一种测试物理服务器网络带宽的方法与流程

文档序号:37004926发布日期:2024-02-09 12:50阅读:18来源:国知局
一种测试物理服务器网络带宽的方法与流程

本发明涉及计算机网络领域,具体来说是一种测试物理服务器网络带宽的方法。


背景技术:

1、国产服务器国产cpu如雨后春笋般发展起来。快速发展带来的影响就是服务器的性能参差不齐,各厂商的优化,散热,配置等存在很大的差异。对于各中小企业服务器采购,以及云厂商的服务器采购带来了更大的挑战。服务器采购前的适配测试就显得尤为重要。测试的越准确,今后因为性能发生的问题概率就会越低。

2、在我们的服务器采购中,服务器的性能应该作为采购的重要指导之一。但是物理机的性能并不是可以简单获取到的。例如本专利中所论述的物理服务器的网络带宽性能。影响服务器网络性能的原因有很多,基于不同的cpu,不同的物理网卡,内存性能,总线等等会使得网络性能存在很大差异。即使相同的配置服务器,最终的性能也会有很大的差异。现在跨结点的虚拟化资源相互访问离不开物理机的网络性能。只有物理机网络性能足够优秀,才能保证支撑复杂的业务。

3、iperf3是一个tcp、udp和sctp网络带宽测量工具。是用于主动测量ip网络上可达到的最大带宽的工具。它支持调整与时序,协议和缓冲区有关的各种参数。对于每个测试,它都会报告测得的吞吐量/比特率,损耗和其他参数。是测试带宽的最佳工具。iperf3有多个版本。支持linux,windows等主流的操作系统。

4、现有的方法存在以下缺点:

5、常规测试中,iperf3无法打满大规格的网络,并且udp丢包严重,无法准确测试出实际的网络性能。


技术实现思路

1、本发明主要目的是测试物理服务器网络性能。最主要的是tcp/udp带宽。

2、为实现上述目的,本发明采取的技术方案为:

3、1.iperf3是一个单线程测试工具,-p指定之后也只是开启了多个流,最终使用的还是单个线程,所以测试时要使用多进程,才能保证iperf3打满物理机网络,在单个的iperf3进程时,经过测试,intel5318的cpu最高只能打到16gbits/sec左右,鲲鹏920cpu最高15gbits/sec左右,海光77380和飞腾2000+,飞腾s2500的测试结果更低,在做了bond4之后的10gbits/sec网卡下,理论可以达到接近于20gbits/sec的带宽,以上cpu单进程无法打满理论带宽,更没有办法衡量物理机网络,在本方案的测试中,同时开启多个进程,绑定不同的端口,用&放在后台进行执行,将测试结果保存下来,通过脚本进行累加,带宽总数即为物理机网络的带宽数,丢包率需要平均,这里建议使用-b 0g,让他自己调节带宽的大小,-p指定多个流,防止因为内存读写缓冲区的原因造成内存的溢出。

4、2.为了确保测试结果的准确性,我们需要在测试开始前将cpu设定为性能模式。因为,当cpu处于节能模式时,其频率会降低,这可能会导致测试的数据并不真实反映系统的实际性能。尽管我们可以通过bios设置为performance模式,但这并不能保证cpu会持续运行在最高频率。有些服务器,特别是在空载一段时间后,会自动切回到节能模式以节省电力。在这种模式下,无论是测试的带宽还是延迟都可能偏低。为了解决这个问题,我们可以使用cpufrequtils这一工具。它是一个专门用于调节cpu频率的实用程序。通过简单的命令行指令,我们可以轻松地将cpu切换到性能模式。对于拥有96个cpu的物理机,我们可以使用循环命令来为每一个cpu逐一设置。这样,我们可以确保在测试期间,每一个cpu都处于最佳的性能状态,从而为我们提供准确、可靠的测试数据。

5、3.rss(receive side scaling)是一种网络技术,通过将数据包根据其元组信息散列到不同的网卡队列,以实现更高效的cpu资源利用。然而,在某些情况下,即使使用了rss,测试结果可能仍然不尽如人意。例如,当进行网络流量测试时,通常会使用一台client和一台server。在这种情况下,由于源ip和目的ip是固定的,因此数据包会聚集到同一个网卡队列中。这意味着即使使用了rss,多进程测试也无法提高性能,因为所有的数据包最终都会被一个cpu处理。这可能会导致测试结果与单进程测试的结果相同。此外,在udp测试中,由于数据包的顺序可能会发生变化,可能会导致丢包率升高。这可能会对测试结果产生负面影响。为了解决这个问题,我们可以使用ethtool命令来修改网卡的rss hash规格。通过将hash规格改为源ip、目的ip、源端口和目的端口,我们可以确保数据包根据更复杂的信息散列到不同的网卡队列。这可以使测试更加准确,并避免因数据包顺序变化而导致的丢包问题。总之,通过修改ethtool命令来修改网卡的rss hash规格,我们可以确保在网络测试中充分利用cpu资源,并获得更准确的测试结果。

6、4.当物理机的bios设置为性能模式时,通常会启用超线程技术,这是云厂商为了提高整体性能常用的方法。然而,在进行网络测试时,这种设置可能会导致一些问题。由于超线程技术使一个物理cpu对应两个虚拟cpu,如果经过哈希处理后的数据包进入了由相同物理cpu虚拟出来的两个cpu的队列中,那么可能会导致带宽受限,同时在udp测试中丢包率也会显著增加。为了解决这个问题,我们可以利用网卡所支持的flow director技术。flowdirector是intel公司开发的一种技术,它可以根据数据包的字段进行精确匹配,并将数据包分配到特定的队列中。网卡上存储了一个flow director表,该表记录了需要匹配的关键字以及匹配后的动作。网卡驱动程序负责管理这个表,包括初始化、增加表项和删除表项等操作。当网卡从网络上接收到数据包时,它会根据关键字查找flow director表。如果找到匹配项,就会按照表项中指定的动作处理数据包,例如将数据包分配到特定的队列或者丢弃。flow director的优先级高于rss(receive side scaling),因此我们可以使用flowdirector来指定不同端口的流量进入特定的队列,并由指定的cpu进行软中断处理。通过使用flow director技术,我们可以避免在网络测试中出现带宽受限和丢包率增加的问题。这项技术可以根据需要精确地控制数据包的流向,确保数据包能够被正确地处理和分发。这对于需要进行精确网络测试的场景非常有用,可以帮助我们更准确地评估系统的性能和表现。

7、5.在进行网络性能测试之前,确保网卡的flow director功能已启用是非常重要的。flow director功能可以根据数据包的字段进行精确匹配,并将数据包分发到指定的队列,从而优化网络性能。要检查网卡是否已启用flow director功能,可以使用命令sudoethtool–k网卡|grep ntuple进行查看。如果返回结果为ntuple-filters:off,则表示该功能未启用。为了开启flow director功能,需要执行命令sudo ethtool-k网卡ntuple on。执行完毕后,再次使用查看命令确认是否成功启用,如果返回结果为ntuple-filters:on,则表示flow director功能已成功开启。启用flow director功能后,我们可以使用ethtool-u网卡flow-type udp4 dst-port端口action队列号命令将指定端口的流量导向到特定的队列中,以便由指定的cpu进行处理。这可以帮助我们更好地控制网络流量的流向,并避免超线程技术对网络性能测试的干扰。另外,当使用iperf3测试工具进行网络性能测试时,我们可以使用-a参数来绑定iperf3使用的cpu和用于接收流量的cpu。这样可以确保它们不会位于同一个超线程上,从而避免性能受到超线程的影响。在client端设置中,我们还可以指定client和server两端绑定的cpu,以进一步优化网络性能测试的准确性和可靠性。总之,通过启用网卡的flow director功能并合理配置网络流量和测试工具的绑定设置,我们可以提高网络性能测试的准确性和可靠性,获得更准确的性能数据。

8、6.vlc是一种高效的缓存策略,它的核心思想是将最近使用过的dom元素暂时存储在计算机的内存中。这样做的目的是,当浏览器或应用程序在后续的操作中需要再次访问这些元素时,可以直接从内存缓存中获取,而不是重新执行一套复杂的查找和比较机制。这种缓存方式可以显著提高应用程序的响应速度,因为它减少了访问和检索dom元素所需的时间。尤其是在处理大量dom元素或执行复杂操作时,vlc缓存策略的效果更为明显,它可以显著提升整体的运行效率,为用户提供更流畅的使用体验。

9、与现有技术相比,本发明具有如下有益效果:

10、比较准确的测试出服务器网络的tcp/udp带宽。udp测试中,丢包率会比较正常。并且可以打满网络。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1