网络性能测试方法、数据处理设备和存储介质与流程

文档序号:20203054发布日期:2020-03-27 20:50阅读:226来源:国知局
网络性能测试方法、数据处理设备和存储介质与流程

本发明涉及计算机技术领域,尤其是涉及一种网络性能的测试方法及其装置、数据处理设备和计算机可读存储介质。



背景技术:

以往,人们通过网络流量测试仪(例如tesgine、ixia)来模拟网络流量,这种方式存在诸多缺点:1、测试仪是物理硬件设备,购买投入会拉高成本;2、测试仪设备收发包端口固定,无法对接大规模集群环境;3、测试仪设备的流量模型配置复杂;4、测试仪设备只能模拟七层网络的流量,侧重于测试网络设备的转发性能。

但是,对于大规模集群环境,网络流量测试仪这样的硬件设备不再适用。首先,测试仪设备无法模拟大规模集群环境中网络流量对物理机的各种压力(cpu、内存、网卡、中断等),也无法模拟大规模集群环境中物理机上各种线程模型对远程直接数据存取(remotedirectmemoryaccess,rdma)网络性能的影响。



技术实现要素:

有鉴于此,本发明提出一种网络性能的测试方法及其装置、数据处理设备和计算机可读存储介质,能够实现网络性能测试,能够解决诸如大规模集群环境的网络性能测试困难的问题。

第一方面,本发明提供一种网络性能测试方法,所述方法包括:在网络的至少一个客户端建立多条连接,其中每一条连接对应网络的一个通道,每一个通道对应网络的一个远端地址;当所述至少一个客户端产生数据流量时,将产生的数据流量按照预定的分发策略分发至对应通道中;基于通道的数据流量处理过程,分析对应的网络性能。

根据本发明所述的方法,所述基于通道的数据流量处理过程,分析对应的网络性能,包括:各通道基于分得的数据流量,将数据包发送至各自对应的远端地址;收集各通道发送数据包过程中的网络压力参数;待各通道的数据包发送完毕后,对收集到的网络压力参数进行分析,以获得测试结果。

根据本发明所述的方法,所述在网络的至少一个客户端建立多条连接包括:在所述至少一个客户端建立多个线程,在每个线程中建立至少一条连接。

根据本发明所述的方法,每个线程通过令牌方式对各自对应的各条连接的数据流量进行分配。

根据本发明所述的方法,每个客户端按照预设的分发策略对各自对应的各个线程的数据流量进行分配。

根据本发明所述的方法,所述分发策略包括以下各种策略中的至少一种:轮询队列对(queue-pair,qp)、随机qp、固定qp。

根据本发明所述的方法,在网络的至少一个客户端建立多条连接之前,所述方法还包括:根据输入信息生成所述至少一个客户端的配置信息。

根据本发明所述的方法,所述配置信息包括全部客户端的主机名hostname列表和/或网际协议ip地址列表。

根据本发明所述的方法,所述方法还包括:根据所述至少一个客户端的配置信息,将所述至少一个客户端部署到网络。

第二方面,本发明还提供一种网络性能测试装置,所述装置包括:连接建立模块,用于在网络的至少一个客户端建立多条连接,其中每一条连接对应网络的一个通道,每一个通道对应网络的一个远端地址;流量分发模块,用于当所述至少一个客户端产生数据流量时,将产生的数据流量按照预定的分发策略分发至对应通道中;网络性能分析模块,用于基于通道的数据流量处理过程,分析对应的网络性能。

第三方面,本发明还提供一种数据处理设备,其包括:

存储器,用于存储程序;

处理器,用于运行所述存储器中存储的所述程序,以执行如上所述的方法。

第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现如上所述的方法。

利用本发明可在网络中建立若干通道连接,每当客户端产生流量,都按照分配策略将流量分配到这些通道连接中,在这些通道连接中发送数据包,从而模拟数据包的发送过程,获得相应的网络性能参数,从而实现对网络性能的测试。

附图说明

图1为本发明一个实施例的网络性能测试方法的流程框图。

图2为本发明一个实施例对集群网络性能测试的方法流程图。

图3为本发明实施例的压力客户端模块的架构图。

图4为本发明实施例的数据处理设备的硬件结构示意图。

具体实施方式

以下结合附图及实施例,对本发明进行详细描述。应理解,所描述的具体实施例仅用于解释本发明,而并不用于限定本发明。文中的诸如第一、第二等用语仅用来对一个实体(或操作)与另一个实体(或操作)进行区分,而不表示这些实体(或操作)之间存在任何关系或顺序;另外,文中的诸如上、下、左、右、前、后等表示方向或方位的用语,仅表示相对的方向或方位,而非绝对的方向或方位。在没有额外限制的情况下,由语句“包括”限定的要素,不排除在包括所述要素的过程、方法、物品或者设备中还存在其他要素。

远程直接数据存取(remotedirectmemoryaccess,rdma)可视作远程dma技术,rdma是为了解决网络传输中服务器端数据处理的延迟而产生的技术。rdma允许用户态的应用程序直接读取或写入远程内存,而无内核干预和内存拷贝发生。起初,rdma技术只应用在高性能计算领域;当前,由于在大规模分布式系统和数据中心的网络瓶颈日益突出,rdma技术逐渐进入越来越多研发者的视野中。

大规模集群环境中的rdma网络性能观测有很多复杂场景,例如一对一、一对多、多对多等,并且流量模型也较为复杂,例如突发流量、大块网络报文、小块网络报文、大小包混合报文等,此外需要观测的指标也比较多,例如吞吐、延迟、稳定性、整集群转发性能、单机转发性能等。

基于上述情况,本发明提供一种网络性能测试方法,利用本发明能够实现对各类网络的性能测试。具体到大规模集群环境,本发明能够在大规模集群环境中方便、快捷地得到网络中的多项数据,用于分析测试结果。以下对本发明的各个方面进行详细描述。

图1示出了本发明实施例的网络性能测试方法的流程框图,其包括:

s101,在网络的至少一个客户端建立多条连接,其中每一条连接对应网络的一个通道,每一个通道对应网络的一个远端地址;

s102,当所述至少一个客户端产生数据流量时,将产生的数据流量按照预定的分发策略分发至对应通道中;

s103,基于通道的数据流量处理过程,分析对应的网络性能。

利用上述方案,可在网络中建立若干连接,每当客户端产生流量时,都按照分配策略将流量分配到若干连接中,在这些连接中发送数据包,从而模拟获得发送过程中的网络性能。

在本发明的一种实施方式中,客户端先建立多个线程,然后在每个线程中建立至少一个连接,从而得到多个连接。客户端将流量先分配到多个线程,再由线程分配到各自的若干连接中。

进一步,各连接通道基于分得的数据流量,将数据包发送至各自对应的远端地址;收集各通道发送数据包过程中的网络压力参数;各通道的数据包发送完毕后,对收集到的网络压力参数进行分析,以获得测试结果。

可见,本发明通过在网络中建立多级分发处理机制和流量模型抽象处理机制,可提供灵活多变的场景模拟能力。

在本发明的一种应用场景中,对大规模集群环境中的rdma网络性能进行模拟和测试,可通过以下实施例实现本发明方法的处理过程。

在本发明中构建以下模块:部署模块、配置模块、压力客户端模块、压力服务端模块和数据分析模块,具体来看:

●部署模块:负责将配置模块、压力客户端模块以及压力服务端模块快速部署到集群环境;

●配置模块:负责根据用户的输入,生成压力客户端模块和压力服务端模块的配置;

●压力客户端模块:负责产生网络流量压力,还负责接收压力服务端模块的响应请求;

●压力服务端模块:负责接收网络流量压力,负责响应压力客户端模块的请求;

●数据分析模块:负责分析统计测试结果。

图2示出了本发明一个实施例对集群网络性能测试的方法流程图,

图3示出了本发明实施例的压力客户端模块的架构图。其中,压力客户端模块包括:主线程monitor、线程worker、通道channel和分发策略policy,具体地:

●channel:一个channel代表一个rdmaqp,对应于一个特定的远端地址。其中,qp是队列对queue-pair的缩写,代表rdma网络中的一条可靠连接,在tcp/ip协议族中对等的概念是socket。

●worker:一个worker代表一个线程,worker通过令牌方式来管理其中各个channel的流量配额。

●monitor:主线程,负责管理各个worker的流量配额。

●policy:分发策略,每次客户端产生流量时,控制一组worker或一组channel中哪几个发多少个数据包;例如:轮询qp、随机qp和/或固定qp。

对于本发明建立的“多级分发机制”和“流量模型抽象机制”,其中,“多级分发机制”是指本发明通过“monitor→worker→channel”的分层机制,来实现线程级别和网络连接级别的分发,从而可以构造出各种复杂的分发模型。“流量模型抽象机制”是指本发明将大规模集群网络流量抽象为单连接流量属性和连接分发模型两个层面。

其中,单连接流量属性包含传统网络通信中的流量属性,如包大小、压力深度等;连接分发模型定义了流量如何在各个连接上进行分发,基本的分发策略有随机、轮询、固定等;连接分发模型描述了在大规模集群中网络流量的分布。

本发明通过多级分发模型和流量模型抽象,可提供灵活多变的场景模拟能力;本发明的配置简洁,可实现批量推送,极大简化了用户的操作复杂程度;本发明通过软件实现方式突破了硬件的规模限制,不但应用面得到拓展,易于实现,还可在一定程度上降低投入成本。

以下通过具体的实例,描述本发明实施例的可选的具体处理过程。需要说明的是,本发明的方案并不依赖于具体的算法,在实际应用中,可选用任何已知或未知的硬件、软件、算法、程序或其任意组合等来实现本发明的方案,只要是采用了本发明方案的实质思想,均落入本发明的保护范围。

在本发明的一个实施例中,考虑在60台计算机的集群中,在单个客户端建立60000条连接的场景;测试在此集群中各条连接依次发送网络包的场景下的网络延迟。

应当指出,上述测试模型对应的实际应用场景为:大规模集群中大量用户有零星压力的情况,该场景下应关注流量在不同连接上跳跃时带来的延迟损耗。

i.准备配置:本实施例采用client建立60个worker,每个worker建立1000个channel;每个server起10个端口,共60个server的模式;则每个server的每个端口会建立100条连接。

其中,serverlist中包括60台机器的hostname或ip的列表;

其中,serverportcount=10,每个压力服务端起10个端口,每个端口可以与100个client建立连接;

其中,clientlist中包括发起流量的机器hostname或ip;

其中,depth=1,为测试单深度压力下的延迟;

其中,policy=轮询客户端线程数=60,客户端每个线程所拥有的channel数=1000;

其中,msgsize等作为可选配置,可根据用户的不同需求进行设置;

ii.部署测试:配置模块会将用户配置翻译成json格式,并与压力工具一起推送到对应机器上;

iii.开始测试:压力客户端启动,建立一个monitor和60个worker,每个worker中建立1000个channel,共计60000个channel,这60000个channel和远端600个地址建立连接;

接着,monitor应用轮询policy,依次向各个worker分发配额,worker应用轮询policy,将配额依次分给下面的每个channel。

channel得到配额后,发送数据包。

如此往复。这里,由于depth=1,即全局总配额为1,即同一时刻只有一个channel有发送权限,结合worker轮询,channel轮询的分发机制,即模拟了60000条连接依次发送数据包的场景。

iv.等待测试结束,收集并分析数据。

利用本发明的实施例测试网络性能,例如大规模集群网络性能,具有以下优势:

①本发明通过软件方式实现,成本低,部署快。

②本发明提供便捷的配置方式(如hostnamelist或者iplist),理论上支持任何规模集群环境,对收发包端口的个数没有限制。

③本发明提供常用的预设流量模型以及结构化配置方法,配置简单。

④本发明运行环境即集群物理机,因此除仅需模拟网络流量之外,天生具备对cpu、内存、网卡、中断等硬件资源的占用能力,能够自定义各种线程模型和流量模型。

⑤此外,本发明提供灵活的流量模型和线程模型设置,可对各种复杂的压力场景进行组合模拟。

⑥本发明不仅可以应用于分布式存储系统,还可以应用于其他任何使用rdma技术的领域,如网络、大规模计算等,本发明的应用面宽。

除此之外,与本发明实施例的方法相对应地,本发明还提供一种装置、数据处理设备和计算机存储介质。

其中,所述数据处理设备包括:

存储器,用于存储程序;

处理器,用于运行所述存储器中存储的所述程序,以执行本发明实施例所述的方法中的各步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现本发明实施例所述的网络性能测试方法中的各步骤,包括:

在网络的至少一个客户端建立多条连接,其中每一条连接对应网络的一个通道,每一个通道对应网络的一个远端地址;

当所述至少一个客户端产生数据流量时,将产生的数据流量按照预定的分发策略分发至对应通道中;

基于通道的数据流量处理过程,分析对应的网络性能。

应当指出,在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机程序指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

图4示出了能够实现根据本发明实施例的方法和设备的示例性硬件架构的结构图,例如本发明实施例的设备。其中,计算设备1000包括输入设备1001、输入接口1002、处理器1003、存储器1004、输出接口1005、以及输出设备1006。

其中,输入接口1002、处理器1003、存储器1004、以及输出接口1005通过总线1010相互连接,输入设备1001和输出设备1006分别通过输入接口1002和输出接口1005与总线1010连接,进而与计算设备1000的其他组件连接。

具体地,输入设备1001接收来自外部的输入信息,并通过输入接口1002将输入信息传送到处理器1003;处理器1003基于存储器1004中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器1004中,然后通过输出接口1005将输出信息传送到输出设备1006;输出设备1006将输出信息输出到计算设备1000的外部供用户使用。

计算设备1000可以执行本发明上述的网络性能测试方法中的各步骤,包括:

在网络的至少一个客户端建立多条连接,其中每一条连接对应网络的一个通道,每一个通道对应网络的一个远端地址;

当所述至少一个客户端产生数据流量时,将产生的数据流量按照预定的分发策略分发至对应通道中;

基于通道的数据流量处理过程,分析对应的网络性能。

处理器1003可以是一个或多个中央处理器(英文:centralprocessingunit,cpu)。在处理器601或处理器701是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

存储器1004可以是但不限于随机存储存储器(ram)、只读存储器(rom),可擦除可编程只读存储器(eprom)、光盘只读存储器(cd-rom)、硬盘等中的一种或多种。存储器1004用于存储程序代码。可以理解,本发明实施例提供的任一模块或全部模块的功能可以用央处理器1003实现。

需要指出,本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处可参见方法实施例部分的说明。

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