一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

压力测试方法、装置、设备和存储介质与流程

2022-02-19 23:53:31 来源:中国专利 TAG:


1.本技术涉及测试技术,尤其涉及一种压力测试方法、装置、设备和存储介质。


背景技术:

2.随着互联网技术的飞速发展和计算机应用的日益复杂,对服务器的性能和稳定性要求越来越高,服务器集群技术凭借其强大运算能力、高可用性等优势得到了广泛关注。为了应对高并发访问请求,以保证服务器集群的稳定运行,需要经常对服务器集群进行压测。
3.目前,在接收到占用服务器资源较多的压测任务,即大规格压测任务时,服务器集群通常采用分布式进行压测,具体为选择一台调度机(master)进行发压,将压测任务以及压测脚本等传送到各个测试机(slave),测试机分别对接收到的压测任务按照顺序进行处理,并将最终的测试结果反馈给调度机。
4.然而,上述现有技术的方式,调度机将多个不同规格的压测任务随机分配给各个测试机,而每个测试机只能处理与自身压测规格相近或小于当前压测规格的压测任务,导致测试机的资源利用率和压测效率均较低。


技术实现要素:

5.本技术提供一种压力测试方法、装置、设备和存储介质,避免了现有技术中调度机将多个不同规格的压测任务随机分配给各个测试机,导致小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间长,导致压测效率低。或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
6.第一方面,本技术提供一种压力测试方法,包括:
7.接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源。
8.根据多个压测任务所需要的资源确定多个初始压测集群。
9.采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
10.针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
11.在一种可能的实现方式中,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,包括:
12.根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
13.若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
14.若不大于,则将第一压测集群确定为目标压测集群。
15.在一种可能的实现方式中,方法还包括:
16.若与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和,则根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
17.判断第二压测集群中是否存在空闲资源。
18.若第二压测集群中存在空闲资源,则判断空闲资源是否大于第二压测任务所需要的资源。
19.若空闲资源大于第二压测任务所需要的资源,则将第二压测集群确定为第二压测任务对应的目标压测集群。
20.在一种可能的实现方式中,方法还包括:
21.若空闲资源不大于压测任务所需要的资源,则根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
22.判断第三压测集群中是否存在空闲资源。
23.若第三压测集群中存在空闲资源,则根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
24.将第四压测集群确定为目标压测集群。
25.在一种可能的实现方式中,方法还包括:
26.若不存在与压测任务匹配的第一压测集群,则判断是否存在第五压测集群,第五压测集群对应的第三压测任务的队列小于第二预设值。
27.若存在第五压测集群,则从多个初始压测集群中确定第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
28.根据第五压测集群的大小,创建与压测任务对应的目标压测集群。
29.在一种可能的实现方式中,将压测任务发送给目标压测集群对应的目标测试机,包括:
30.获取目标压测集群对应的各目标压测任务的优先级。
31.按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
32.在一种可能的实现方式中,根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,包括:
33.获取各初始压测集群对应的最小阈值和最大阈值。
34.针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
35.若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
36.第二方面,本技术提供一种压力测试装置,包括:
37.接收模块,用于接收终端设备发送的多个压测任务。
38.确定模块,用于确定多个压测任务所需要的资源。
39.确定模块,还用于根据多个压测任务所需要的资源确定多个初始压测集群。
40.确定模块,还用于采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
41.确定模块,还用于针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群。
42.发送模块,用于将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
43.在一种可能的实现方式中,确定模块,具体用于:
44.根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
45.若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和;
46.若不大于,则将第一压测集群确定为目标压测集群。
47.在一种可能的实现方式中,该装置还包括:判断模块;
48.确定模块,还用于在与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和时,根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
49.判断模块,用于判断第二压测集群中是否存在空闲资源。
50.判断模块,还用于在第二压测集群中存在空闲资源时,判断空闲资源是否大于第二压测任务所需要的资源。
51.确定模块,还用于在空闲资源大于第二压测任务所需要的资源时,将第二压测集群确定为第二压测任务对应的目标压测集群。
52.在一种可能的实现方式中,该装置还包括:创建模块;
53.确定模块,还用于当空闲资源不大于压测任务所需要的资源时,根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
54.判断模块,还用于判断第三压测集群中是否存在空闲资源。
55.创建模块,用于当第三压测集群中存在空闲资源时,根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
56.确定模块,还用于将第四压测集群确定为目标压测集群。
57.在一种可能的实现方式中,判断模块,还用于在不存在与压测任务匹配的第一压测集群时,判断是否存在第五压测集群,第五压测集群对应的第二压测任务的队列小于第二预设值。
58.确定模块,还用于当存在第五压测集群时,从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
59.创建模块,还用于根据第五压测集群的大小,创建与第三压测任务对应的目标压测集群。
60.在一种可能的实现方式中,发送模块,具体用于:
61.获取目标压测集群对应的各目标压测任务的优先级。
62.按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
63.在一种可能的实现方式中,确定模块,具体用于:
64.获取各初始压测集群对应的最小阈值和最大阈值。
65.针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
66.若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
67.第三方面,本技术还提供一种服务器,该服务器可以包括处理器和存储器;其中,
68.存储器,用于存储计算机程序。
69.处理器,用于读取存储器存储的计算机程序,并根据存储器中的计算机程序执行上述第一方面任一种可能的实现方式中的压力测试方法。
70.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述第一方面任一种可能的实现方式中的压力测试方法。
71.本技术提供的压力测试方法,通过接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源,然后根据多个压测任务所需要的资源确定多个初始压测集群,再采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。在该方法中,通过采集各测试机的剩余资源,然后根据接收到的多个压测任务所需要的资源划分多个相互隔离的大、中、小压测集群。对比各测试机的剩余资源与每个初始压测集群的资源,将各测试机划分到相应的压测集群中。然后按照压测任务所需要的资源,调度机将压测任务分配到相应的压测集群中,并在各测试机的队列中按照顺序进行处理,进而实现了将相应规格的压测任务分配到与之规格对应各测试机组成的压测集群中进行处理。该方法避免了现有技术中小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间加长,导致压测效率低,或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
附图说明
72.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。通过以下示图,会示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
73.图1为本技术实施例提供的一种压力测试方法的系统架构图;
74.图2为本技术实施例提供的一种压力测试方法流程图;
75.图3为本技术实施例提供的另一种压力测试方法流程图;
76.图4为本技术实施例提供的一种压力测试装置的结构示意图;
77.图5为本技术实施例提供的一种服务器的结构示意图。
具体实施方式
78.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其示例表示在附图中。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
79.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
80.本技术实施例提供的压力测试方法,可以应用于在面临大规格请求任务时,服务器能否高效稳定运行的应用场景中,尤其是服务器集群能否高效稳定运行的应用场景中,其中,规格具体是指运行请求任务所占用服务器资源的多少,因此,大规格请求任务具体为占用服务器资源较多的请求任务。例如,随着用户量的不断提升,企业为保证应用程序在运行时具有强大的访问请求处理能力以及系统的稳定性,会使用多台服务器组成服务器集群。通常在某个应用程序上线之前,为了了解服务器集群的处理能力和稳定性,都会先对服务器集群进行压测,压测通过之后再提交上线。另外,在应用程序的正常运行或者维护过程中,也经常需要对服务器集群的性能进行压测。
81.目前,在对服务器集群性能进行压测时,通常会采用分布连接方式,即调度机

测试机分布形式。其中,调度机中存储了所有测试机的地址,并保证调度机与测试机之间网络的连通性。同时,调度机在接收到压力测试相关服务后发送到各个测试机,压力测试相关服务包括压测脚本和配置参数等信息。分布连接方式具体为调度机接收到压测任务后,会将压测任务分解为多个不同规格或者不同大小的压测任务,并随机将这些压测任务分配到各个测试机进行处理,测试机对接收到的压测任务处理完成后,最终将测试结果反馈给调度机,其中,不同规格的压测任务所占用的服务器资源不同。
82.然而,上述方式中,调度机将接收到的压测任务随机分配给各个测试机,各测试机内存在队列,可存放与自身压测规格相符的压测任务并处理,因此各测试机只能处理与自身压测规格相近,或者小于自身压测规格的压测任务。而随机分配压测任务,致使有的测试机需要处理的压测任务较多,有的测试机有较多的闲置资源。例如,当有的测试机接收到的压测任务较多导致排队,有的测试机有较多的闲置资源无法利用,必然增加了测试机处理
压测任务的整体时长。同时不能充分调度所有的测试机资源,导致测试机资源利用率和压测效率均较低。
83.本技术实施例中考虑到上述问题,提出一种压力测试方法,该方法中,按照多个压测任务所需要的资源创建出相互隔离的大、中、小压测集群,而每个压测集群中存在集群队列,基于测试机的剩余资源,在集群队列中写入了相应规格的测试机的地址。压测集群创建完成后,便可按照压测任务所需要的资源,将压测任务分配到相应压测集群中的测试机中进行处理。由于对不同压测任务所需资源创建相应资源大小的压测集群,并评估所有测试机的剩余资源,通过对比压测集群所需资源与测试机的剩余资源,将各测试机分配到相应压测集群中,这样便可使用相同或相近规格的测试机处理相应规格的压测任务,避免现有技术中随机分配的压测任务规格远小于测试机能够处理的压测任务规格的现象,从而减少了测试机资源的浪费,提高测试机资源的利用率。同时,也避免了随机分配的压测任务规格远大于测试机能够处理的压测任务规格现象造成的排队时间加长,进而缩短整体压测时长,提高了压测效率。
84.图1为本技术实施例提供的压力测试方法的系统架构图,如图1所示,该系统中包括终端设备101和服务器集群102。其中,服务器集群102中包含调度机104和测试机集群105,调度机104部署了数据库103。终端设备101可以配置压力测试相关服务并分配到调度机104,启动程序后调度机104通过网络将压力测试相关服务分配到测试机集群105中的每一个测试机,测试机集群105中包含多个相互独立的测试机,每个测试机能够处理压测任务的资源称为测试机规格。然后调度机104将接收到的多个不同规格的压测任务自动分配到测试机集群105中进行处理。服务器集群102中创建了多个不同规格的压测集群,每个压测集群中含有集群队列,集群队列中可写入测试机集群105中各测试机的地址。其中压测集群的规格由压测任务的规格决定,且每个压测集群的规格均有最大和最小阈值。通过遍历测试机集群105中每个测试机规格,并分别与每个压测集群的最大和最小阈值对比,当测试机规格处于该压测集群的最大和最小阈值区间内,便将该测试机分配到该压测集群中。同时,数据库103中存放了每个压测集群最大和最小阈值信息、测试机规格、以及各个测试机在压测集群中的分布信息等。
85.应该理解,在图1所示的系统架构中,终端设备101和服务器集群102、服务器集群102中的调度机104和测试机集群105的数目仅仅是示例性的,更多或更少的数量都属于本技术的保护范畴。并且,在上述示例运行场景中,终端设备101例如可以是个人计算机、服务器、掌上电脑(personal digital assistant,pda)、笔记本或其它任何具有联网功能的计算设备。调度机104和测试机集群105可以是服务器,也可以是计算机领域中的容器。调度机104中配置的数据库103可以为redis数据库、结构化查询语言(structured query language,sql)数据库或其他类型的数据库。终端设备101和服务器集群102之间通信的网络可以包括各种类型的有线和无线网络,例如但不局限于:互联网、局域网、无线保真(wireless fidelity,wifi)、无线局域网(wireless local area networks,wlan)、蜂窝通信网络(通用分组无线服务技术(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、2g/3g/4g/5g蜂窝网络)、卫星通信网络等等。
86.在了解了本技术的系统架构后,结合图2对本技术的压力测试方法的方案进行详细说明。
87.图2为本技术实施例提供的一种压力测试方法的流程示意图,本技术实施例提供了一种压力测试方法,该方法可以由任意执行压力测试方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在如图1所示的调度机104中。如图2所示,本技术实施例提供的压力测试方法包括如下步骤:
88.步骤201:接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源。
89.其中,资源为服务器资源,即测试机资源,具体为测试机的中央处理器(central processing unit,cpu)处理压测任务的频率信息、内存存储空间信息、磁盘存储空间信息等。
90.具体的,测试人员可通过终端设备将大规格的压测任务并发给测试机集群中的调度机。其中,大规格的压测任务会自动分为多个压测任务,多个压测任务的规格可能相同,也可能不同。调度机在接收到多个压测任务后,根据压测任务的每秒查询率(query per second,qps)、循环次数、基于历史处理相应规格压测任务耗时估算出的平均单次耗时、优先级、测试数据量级等参数进行计算,预估不同的压测任务所需要的资源。
91.步骤202:根据多个压测任务所需要的资源确定多个初始压测集群。
92.示例性的,预估不同的压测任务所需要的资源后,便可根据不同压测任务所需要的资源创建相互隔离的大、中、小不同规格的初始压测集群。而每一个初始压测集群的规格均有对应的最小阈值和最大阈值,其中,最小阈值和最大阈值组成该初始压测集群的阈值信息。然后将各初始压测集群的规格信息以及阈值信息存放在数据库中。
93.应该理解的是,划分的初始压测集群个数与压测任务个数可以相同,也可以不同,具体不做任何限定。
94.步骤203:采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
95.具体的,确定每个测试机的剩余资源,这些剩余资源组成各测试机的规格信息,然后将其存放在数据库中。其中,测试机的剩余资源也可以理解为测试机的空闲资源。例如,某个测试机能够处理5gb的压测请求,若该测试机内没有处理其他任务,则该测试机的剩余资源为5gb;若该测试机中的2gb被其他任务占用,则该测试机的剩余资源为3gb。
96.获取到各压测集群的阈值信息以及各测试机的规格信息后,便可从多个初始压测集群中,确定各测试机对应的初始压测集群。示例性的,通过获取各初始压测集群对应的最小阈值和最大阈值,针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
97.具体的,最小阈值到最大阈值构成该每个初始压测集群的阈值区间。数据库中可获取各个初始压测集群的阈值区间以及各测试机的规格信息,通过遍历各测试机的规格信息,并分别与每个初始压测集群的最大阈值和最小阈值对比,若某个测试机的规格信息处于某个第一压测集群的阈值区间内,便可确定当前测试机匹配的第一初始压测集群,并将该第一初始压测集群确定为当前测试机对应的初始压测集群,最后将当前测试机的地址写入确定的初始压测集群的集群队列中。例如,存在a、b两个测试机,分别能够处理2gb、10gb压测任务,即a、b两个测试机的规格信息分别为2gb、10gb。同时存在两个初始压测集群a、b,
其阈值区间分别为1gb到3gb、8gb到15gb。将a测试机的规格信息分别与a、b两个初始压测集群阈值区间对比,因2gb处于1gb到3gb阈值区间内,所以确定初始压测集群a为a测试机对应的初始压测集群,然后将a测试机的地址写入该初始压测集群a。同理,确定初始压测集群b为b测试机对应的初始压测集群,将b测试机的地址写入确定的初始压测集群b中。
98.应理解,一个初始压测集群中可接收规格信息在阈值区间内的所有测试机,因此,写入一个初始压测集群中的测试机地址可以为零个,也可以为一个或多个。
99.在本示例中,通过遍历每个测试机的规格,并分别与每个初始压测集群的最大阈值和最小阈值对比,判断每个测试机的规格信息落入的阈值区间,便可以将相同或相近规格的测试机分配到对应的初始压测集群中。这样有利于压测集群接收与内部测试机规格近似的压测任务并进行处理,进一步提高了测试机资源利用率以及压测效率。
100.其中,与内部测试机规格近似的压测任务,可以理解为测试机所剩余的资源大小与压测任务所需要的资源大小之间的差值小于预设值。
101.步骤204:针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
102.具体的,压测集群划分完毕后,不同规格的压测任务便可根据所需要的资源自动决策并分配到相应规格的压测集群中,并使用对应压测集群中分配的各测试机处理压测任务。各测试机处理完成后,将测试结果反馈到调度机。例如:有a、b、c三种不同规格的压测集群,g、k、l为三个测试机,a、b、c为三种不同规格的压测任务。根据a、b、c三种压测任务的qps、循环次数、基于历史数据估算出的平均单次耗时、优先级、测试数据量级等参数预估所占用的资源,然后划分与之对应规格的a、b、c三种压测集群,每一个压测集群的压测规格均有最大阈值和最小阈值,通过对比测试机的规格信息与压测集群的阈值信息,将g、k、l分别分配到a、b、c三种对应规格的压测集群中。此时a压测集群中包含g测试机,a规格的压测任务分配到a压测集群中,由g测试机接收并进行处理。
103.本技术提供的压力测试方法,通过接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源,然后根据多个压测任务所需要的资源确定多个初始压测集群,再采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,最终针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。在该方法中,通过采集各测试机的剩余资源,然后根据接收到的多个压测任务所需要的资源划分多个相互隔离的大、中、小压测集群。对比各测试机的剩余资源与每个初始压测集群的资源,将各测试机划分到相应的压测集群中。然后按照压测任务所需要的资源,调度机将压测任务分配到相应的压测集群中,并在各测试机的队列中按照顺序进行处理,进而实现了将相应规格的压测任务分配到与之规格对应各测试机组成的压测集群中进行处理。该方法避免了现有技术中小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间加长,导致压测效率低,或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
104.接下来,将结合图3,对图2中根据压测任务所需要的资源,从多个初始压测集群中
确定与压测任务对应的目标压测集群的具体实现过程进行详细说明。
105.图3为本技术实施例提供的另一种压力测试方法的流程示意图,如图3描述了各压测集群内部的测试机处理压测任务的过程。
106.步骤301:采集多个压测任务所需要的资源。
107.步骤302:根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
108.在本步骤中,根据压测任务所需要的资源可确定多个初始压测集群,因为初始压测集群个数与压测任务个数不尽相同,必然存在无法接收某个规格压测任务的初始压测集群。其中,存在与压测任务匹配的第一压测集群,可以理解为压测任务所需要的资源处于第一压测集群对应的阈值区间内,不存在与压测任务匹配的第一压测集群,可以理解为压测任务所需要的资源不处于第一压测集群对应的阈值区间内。例如:若某压测任务所需要的资源为3.2gb,此时仅存在1gb到3gb、4gb到6gb的两个初始压测集群,则不存在与该压测任务匹配的初始压测集群,进而无法确定与该压测任务匹配的第一压测集群。
109.其中,若存在与压测任务匹配的第一压测集群,则执行步骤303,若不存在,则执行步骤312。
110.步骤303:判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
111.其中,任一个第一压测集群可接收相同或相近规格的第一压测任务,因此,第一压测集群对应的第一压测任务可能有多个。另外,如前述实施例中所描述,第一压测集群中也会存在多个第一测试机,该多个第一测试机用于测试第一压测集群中的多个第一压测任务。
112.当所有第一压测任务所需要的资源的和不大于第一压测集群对应的所有第一测试机的剩余资源之和,则执行步骤304后,执行步骤314。若所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和,则执行步骤305。
113.在本步骤中,通过压测任务所需要的资源,优先将其分配到相应规格的压测集群中进行处理,从而提高了测试机资源利用率。
114.步骤304:将第一压测集群确定为目标压测集群。
115.步骤305:根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
116.具体的,第二压测集群的大小与第一压测集群的大小相同或相近,第一预设值为接近于0的值。当第一压测集群中第一测试机的剩余资源不足,无法处理第一压测任务,则首先考虑将超出第一测试机资源的第二压测任务漂移到与第一压测集群的大小相同或相近的第二压测集群。例如:第一压测集群中的第一测试机可处理1gb到3gb区间内的第一压测任务,目前第一压测任务中包含a、b两个第二压测任务,a、b分别需要测试机资源为2gb、2gb。因a、b两个压测任务共需要4gb资源,超出第一测试机能处理的3gb资源,故将a或b的2gb第二压测任务漂移到与第一压测集群大小相同或相近的第二压测集群。
117.步骤306:判断第二压测集群中是否存在空闲资源。
118.其中,若第二压测集群中存在剩余资源,则执行步骤307,否则,执行步骤309。
119.步骤307:判断空闲资源是否大于第二压测任务所需要的资源。
120.其中,第二压测任务为第一压测集群中超出第一测试机资源的压测任务。
121.具体的,若第二压测集群中存在剩余资源且其内部的第二测试机的剩余资源大于第二压测任务所需要的资源,则执行步骤308,然后执行步骤314。若第二压测集群中第二测试机的剩余资源不大于第二压测任务所需要的资源,或者第二压测集群中不存在剩余资源,则执行步骤309。
122.在本步骤中,判断与第一压测集群同规格的第二压测集群是否有足够可用的剩余资源,可以快速使用同规格的压测集群处理第二压测任务,节省了整体压测的时间,并充分利用了测试机的资源。
123.步骤308:将第二压测集群确定为目标压测集群。
124.步骤309:根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
125.步骤310:判断第三压测集群中是否存在空闲资源。
126.在本步骤中,第三压测集群的大小与第一压测集群的大小相差不小于第一预设值。例如,第一压测集群的大小为6gb到10gb,则第三压测集群可以为1gb到3gb,也可以为30gb到40gb。当存在第三压测集群时,统计第三压测集群中是否存在空闲资源。若存在则执行步骤311,若不存在,则执行步骤312。
127.步骤311:根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第三测试机为第三压测集群中处于空闲状态的测试机,并将第四压测集群确定为目标压测集群。
128.具体的,若第三压测集群的大小大于第一压测集群的大小,则将第三压测集群分裂出与第一压测集群的大小相同的第四压测集群;若第三压测集群的大小小于第一压测集群的大小,则将与第三压测集群的大小相同或相近的多个合并出与第一压测集群的大小相同的第四压测集群。例如,第一压测集群的大小为6gb到10gb,当第三压测集群为1gb到3gb,则合并多个相同或相近大小的第三压测集群,直到满足6gb到10gb要求,从而创建第四压测集群。当第三压测集群为30gb到40gb,可多次分裂出满足6gb到10gb要求,进而创建第四压测集群。第四压测集群创建成功后,则执行步骤314。
129.在本步骤中,当同规格的压测集群没有足够的剩余资源处理第二压测任务,则回收不同规格压测集群的剩余资源,通过压测集群合并、分裂的演化过程创建新集群,从而收集空余资源实现压测任务处理,进一步提高了压测效率和测试机资源利用率。
130.步骤312:判断是否存在第五压测集群,第五压测集群对应的第三压测任务的队列小于第二预设值。
131.在本步骤中,当不存在与第一压测任务匹配的第一压测集群或者未有足够可用的第三压测集群资源分裂或合并使得第四压测集群创建成功,则判断是否存在第五压测集群。其中,第五压测集群内部的第三压测任务小于第二预设值,第二预设值为第五压测集群的全部资源。例如:第五压测集群的全部资源为10gb到12gb,目前第三压测任务仅占用了2gb资源,则第五压测集群内部含有大量空闲资源,此时第五压测集群的第二预设值为10gb,也可以是12gb。
132.其中,若存在第五压测集群,则执行步骤313,再执行步骤314。若不存在,则无法确定目标压测集群,压测任务在原初始压测集群处理,执行结束。
133.步骤313:从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源;根据第五压测集群的大小,创建与压测任务对应的目标压测集群。
134.具体的,创建第六压测集群后,将第五压测集群对应的第三压测任务划分到第六压测集群中,将第二压测任务转发到第五压测集群,确定第五压测集群为目标压测集群,然后执行步骤314。应理解的是,优先确定与第五压测集群的大小相同或相近的第六压测集群,若无剩余资源大于第三压测任务所需资源,再确定与第五压测集群的大小不同的压测集群,直至创建一个与第五压测集群的大小相同的第六压测集群。
135.在本步骤中,通过回收空闲资源较多的测试机资源创建新的压测集群,进一步提高了压测效率和测试机资源利用率。
136.步骤314:确定目标压测集群后,将目标压测任务漂移至目标压测集群。
137.具体的,漂移为从原有的压测集群中删除,转发到目标压测集群。调度机获取目标压测集群对应的各目标压测任务的优先级,按照优先级从高到低的顺序,批量将目标压测任务发送给目标测试机。
138.在一种可能的实现方式中,在单个目标压测集群内各测试机的队列中,各测试机接收到新的压测任务,仍会动态调整各压测任务在各测试机队列内的执行顺序,以保障高优先级任务优先执行。
139.在本步骤中,动态调整测试机队列中不同压测任务的执行顺序,可以优先执行优先级较高的压测任务,从而进一步缩短处理压测任务的整体时长,提高压测效率。
140.在本实施例中,通过实时监控每个压测集群中处理压测任务的负载情况,及时将超过压测集群规格的压测任务漂移到剩余资源较多的压测集群中进行处理;若没有足够的剩余测试机资源处理超出压测集群规格的压测任务,便通过集群演化创建新的压测集群,同时按照优先级顺序动态调整测试机队列中处理压测任务的顺序。从而充分调度所有测试机的剩余资源,减少压测任务在各测试机队列中的排队时间,进一步提高了测试机资源利用率和压测效率。
141.图4为本技术实施例提供的一种压力测试装置40的结构示意图,示例的,请参见图4所示,该压力测试装置40可以包括:
142.接收模块401,用于接收终端设备发送的多个压测任务。
143.确定模块402,用于确定多个压测任务所需要的资源。
144.确定模块402,还用于根据多个压测任务所需要的资源确定多个初始压测集群。
145.确定模块402,还用于采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
146.确定模块402,还用于针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群。
147.发送模块403,用于将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
148.可选的,确定模块402,具体用于:
149.根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确
定是否存在与压测任务匹配的第一压测集群。
150.若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
151.若不大于,则将第一压测集群确定为目标压测集群。
152.可选的,该装置还包括:判断模块404;
153.确定模块402,还用于在与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和时,根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
154.判断模块404,用于判断第二压测集群中是否存在空闲资源。
155.判断模块404,还用于在第二压测集群中存在空闲资源时,判断空闲资源是否大于第二压测任务所需要的资源。
156.确定模块402,还用于在空闲资源大于第二压测任务所需要的资源时,将第二压测集群确定为第二压测任务对应的目标压测集群。
157.可选的,该装置还包括:创建模块405;
158.确定模块402,还用于当空闲资源不大于压测任务所需要的资源时,根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
159.判断模块404,还用于判断第三压测集群中是否存在空闲资源。
160.创建模块405,用于当第三压测集群中存在空闲资源时,根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
161.确定模块402,还用于将第四压测集群确定为目标压测集群。
162.可选的,判断模块404,还用于在不存在与压测任务匹配的第一压测集群时,判断是否存在第五压测集群,第五压测集群对应的第二压测任务的队列小于第二预设值。
163.确定模块402,还用于当存在第五压测集群时,从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
164.创建模块405,还用于根据第五压测集群的大小,创建与第三压测任务对应的目标压测集群。
165.可选的,发送模块403,具体用于:
166.获取目标压测集群对应的各目标压测任务的优先级。
167.按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
168.可选的,确定模块402,具体用于:
169.获取各初始压测集群对应的最小阈值和最大阈值。
170.针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
171.若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
184.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
185.总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
186.上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
187.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献