CN113886050B - 压力测试方法、装置、设备和存储介质 - Google Patents

压力测试方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN113886050B
CN113886050B CN202111226042.3A CN202111226042A CN113886050B CN 113886050 B CN113886050 B CN 113886050B CN 202111226042 A CN202111226042 A CN 202111226042A CN 113886050 B CN113886050 B CN 113886050B
Authority
CN
China
Prior art keywords
press
cluster
testing
measurement
pressure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111226042.3A
Other languages
English (en)
Other versions
CN113886050A (zh
Inventor
查玲
靳尧
葛迪
蔡志强
江浪
薛莹莹
吴桐
张雅媛
陈斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202111226042.3A priority Critical patent/CN113886050B/zh
Publication of CN113886050A publication Critical patent/CN113886050A/zh
Application granted granted Critical
Publication of CN113886050B publication Critical patent/CN113886050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请提供一种压力测试方法、装置、设备和存储介质,该方法中,通过接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源,然后根据多个压测任务所需要的资源确定多个初始压测集群,再采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,最终针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。本申请方法能够提高压测效率以及测试机的资源利用率。

Description

压力测试方法、装置、设备和存储介质
技术领域
本申请涉及测试技术,尤其涉及一种压力测试方法、装置、设备和存储介质。
背景技术
随着互联网技术的飞速发展和计算机应用的日益复杂,对服务器的性能和稳定性要求越来越高,服务器集群技术凭借其强大运算能力、高可用性等优势得到了广泛关注。为了应对高并发访问请求,以保证服务器集群的稳定运行,需要经常对服务器集群进行压测。
目前,在接收到占用服务器资源较多的压测任务,即大规格压测任务时,服务器集群通常采用分布式进行压测,具体为选择一台调度机(master)进行发压,将压测任务以及压测脚本等传送到各个测试机(slave),测试机分别对接收到的压测任务按照顺序进行处理,并将最终的测试结果反馈给调度机。
然而,上述现有技术的方式,调度机将多个不同规格的压测任务随机分配给各个测试机,而每个测试机只能处理与自身压测规格相近或小于当前压测规格的压测任务,导致测试机的资源利用率和压测效率均较低。
发明内容
本申请提供一种压力测试方法、装置、设备和存储介质,避免了现有技术中调度机将多个不同规格的压测任务随机分配给各个测试机,导致小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间长,导致压测效率低。或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
第一方面,本申请提供一种压力测试方法,包括:
接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源。
根据多个压测任务所需要的资源确定多个初始压测集群。
采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
在一种可能的实现方式中,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,包括:
根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
若不大于,则将第一压测集群确定为目标压测集群。
在一种可能的实现方式中,方法还包括:
若与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和,则根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
判断第二压测集群中是否存在空闲资源。
若第二压测集群中存在空闲资源,则判断空闲资源是否大于第二压测任务所需要的资源。
若空闲资源大于第二压测任务所需要的资源,则将第二压测集群确定为第二压测任务对应的目标压测集群。
在一种可能的实现方式中,方法还包括:
若空闲资源不大于压测任务所需要的资源,则根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
判断第三压测集群中是否存在空闲资源。
若第三压测集群中存在空闲资源,则根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
将第四压测集群确定为目标压测集群。
在一种可能的实现方式中,方法还包括:
若不存在与压测任务匹配的第一压测集群,则判断是否存在第五压测集群,第五压测集群对应的第三压测任务的队列小于第二预设值。
若存在第五压测集群,则从多个初始压测集群中确定第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
根据第五压测集群的大小,创建与压测任务对应的目标压测集群。
在一种可能的实现方式中,将压测任务发送给目标压测集群对应的目标测试机,包括:
获取目标压测集群对应的各目标压测任务的优先级。
按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
在一种可能的实现方式中,根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,包括:
获取各初始压测集群对应的最小阈值和最大阈值。
针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
第二方面,本申请提供一种压力测试装置,包括:
接收模块,用于接收终端设备发送的多个压测任务。
确定模块,用于确定多个压测任务所需要的资源。
确定模块,还用于根据多个压测任务所需要的资源确定多个初始压测集群。
确定模块,还用于采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
确定模块,还用于针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群。
发送模块,用于将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
在一种可能的实现方式中,确定模块,具体用于:
根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和;
若不大于,则将第一压测集群确定为目标压测集群。
在一种可能的实现方式中,该装置还包括:判断模块;
确定模块,还用于在与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和时,根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
判断模块,用于判断第二压测集群中是否存在空闲资源。
判断模块,还用于在第二压测集群中存在空闲资源时,判断空闲资源是否大于第二压测任务所需要的资源。
确定模块,还用于在空闲资源大于第二压测任务所需要的资源时,将第二压测集群确定为第二压测任务对应的目标压测集群。
在一种可能的实现方式中,该装置还包括:创建模块;
确定模块,还用于当空闲资源不大于压测任务所需要的资源时,根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
判断模块,还用于判断第三压测集群中是否存在空闲资源。
创建模块,用于当第三压测集群中存在空闲资源时,根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
确定模块,还用于将第四压测集群确定为目标压测集群。
在一种可能的实现方式中,判断模块,还用于在不存在与压测任务匹配的第一压测集群时,判断是否存在第五压测集群,第五压测集群对应的第二压测任务的队列小于第二预设值。
确定模块,还用于当存在第五压测集群时,从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
创建模块,还用于根据第五压测集群的大小,创建与第三压测任务对应的目标压测集群。
在一种可能的实现方式中,发送模块,具体用于:
获取目标压测集群对应的各目标压测任务的优先级。
按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
在一种可能的实现方式中,确定模块,具体用于:
获取各初始压测集群对应的最小阈值和最大阈值。
针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
第三方面,本申请还提供一种服务器,该服务器可以包括处理器和存储器;其中,
存储器,用于存储计算机程序。
处理器,用于读取存储器存储的计算机程序,并根据存储器中的计算机程序执行上述第一方面任一种可能的实现方式中的压力测试方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述第一方面任一种可能的实现方式中的压力测试方法。
本申请提供的压力测试方法,通过接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源,然后根据多个压测任务所需要的资源确定多个初始压测集群,再采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。在该方法中,通过采集各测试机的剩余资源,然后根据接收到的多个压测任务所需要的资源划分多个相互隔离的大、中、小压测集群。对比各测试机的剩余资源与每个初始压测集群的资源,将各测试机划分到相应的压测集群中。然后按照压测任务所需要的资源,调度机将压测任务分配到相应的压测集群中,并在各测试机的队列中按照顺序进行处理,进而实现了将相应规格的压测任务分配到与之规格对应各测试机组成的压测集群中进行处理。该方法避免了现有技术中小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间加长,导致压测效率低,或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。通过以下示图,会示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
图1为本申请实施例提供的一种压力测试方法的系统架构图;
图2为本申请实施例提供的一种压力测试方法流程图;
图3为本申请实施例提供的另一种压力测试方法流程图;
图4为本申请实施例提供的一种压力测试装置的结构示意图;
图5为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其示例表示在附图中。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供的压力测试方法,可以应用于在面临大规格请求任务时,服务器能否高效稳定运行的应用场景中,尤其是服务器集群能否高效稳定运行的应用场景中,其中,规格具体是指运行请求任务所占用服务器资源的多少,因此,大规格请求任务具体为占用服务器资源较多的请求任务。例如,随着用户量的不断提升,企业为保证应用程序在运行时具有强大的访问请求处理能力以及系统的稳定性,会使用多台服务器组成服务器集群。通常在某个应用程序上线之前,为了了解服务器集群的处理能力和稳定性,都会先对服务器集群进行压测,压测通过之后再提交上线。另外,在应用程序的正常运行或者维护过程中,也经常需要对服务器集群的性能进行压测。
目前,在对服务器集群性能进行压测时,通常会采用分布连接方式,即调度机-测试机分布形式。其中,调度机中存储了所有测试机的地址,并保证调度机与测试机之间网络的连通性。同时,调度机在接收到压力测试相关服务后发送到各个测试机,压力测试相关服务包括压测脚本和配置参数等信息。分布连接方式具体为调度机接收到压测任务后,会将压测任务分解为多个不同规格或者不同大小的压测任务,并随机将这些压测任务分配到各个测试机进行处理,测试机对接收到的压测任务处理完成后,最终将测试结果反馈给调度机,其中,不同规格的压测任务所占用的服务器资源不同。
然而,上述方式中,调度机将接收到的压测任务随机分配给各个测试机,各测试机内存在队列,可存放与自身压测规格相符的压测任务并处理,因此各测试机只能处理与自身压测规格相近,或者小于自身压测规格的压测任务。而随机分配压测任务,致使有的测试机需要处理的压测任务较多,有的测试机有较多的闲置资源。例如,当有的测试机接收到的压测任务较多导致排队,有的测试机有较多的闲置资源无法利用,必然增加了测试机处理压测任务的整体时长。同时不能充分调度所有的测试机资源,导致测试机资源利用率和压测效率均较低。
本申请实施例中考虑到上述问题,提出一种压力测试方法,该方法中,按照多个压测任务所需要的资源创建出相互隔离的大、中、小压测集群,而每个压测集群中存在集群队列,基于测试机的剩余资源,在集群队列中写入了相应规格的测试机的地址。压测集群创建完成后,便可按照压测任务所需要的资源,将压测任务分配到相应压测集群中的测试机中进行处理。由于对不同压测任务所需资源创建相应资源大小的压测集群,并评估所有测试机的剩余资源,通过对比压测集群所需资源与测试机的剩余资源,将各测试机分配到相应压测集群中,这样便可使用相同或相近规格的测试机处理相应规格的压测任务,避免现有技术中随机分配的压测任务规格远小于测试机能够处理的压测任务规格的现象,从而减少了测试机资源的浪费,提高测试机资源的利用率。同时,也避免了随机分配的压测任务规格远大于测试机能够处理的压测任务规格现象造成的排队时间加长,进而缩短整体压测时长,提高了压测效率。
图1为本申请实施例提供的压力测试方法的系统架构图,如图1所示,该系统中包括终端设备101和服务器集群102。其中,服务器集群102中包含调度机104和测试机集群105,调度机104部署了数据库103。终端设备101可以配置压力测试相关服务并分配到调度机104,启动程序后调度机104通过网络将压力测试相关服务分配到测试机集群105中的每一个测试机,测试机集群105中包含多个相互独立的测试机,每个测试机能够处理压测任务的资源称为测试机规格。然后调度机104将接收到的多个不同规格的压测任务自动分配到测试机集群105中进行处理。服务器集群102中创建了多个不同规格的压测集群,每个压测集群中含有集群队列,集群队列中可写入测试机集群105中各测试机的地址。其中压测集群的规格由压测任务的规格决定,且每个压测集群的规格均有最大和最小阈值。通过遍历测试机集群105中每个测试机规格,并分别与每个压测集群的最大和最小阈值对比,当测试机规格处于该压测集群的最大和最小阈值区间内,便将该测试机分配到该压测集群中。同时,数据库103中存放了每个压测集群最大和最小阈值信息、测试机规格、以及各个测试机在压测集群中的分布信息等。
应该理解,在图1所示的系统架构中,终端设备101和服务器集群102、服务器集群102中的调度机104和测试机集群105的数目仅仅是示例性的,更多或更少的数量都属于本申请的保护范畴。并且,在上述示例运行场景中,终端设备101例如可以是个人计算机、服务器、掌上电脑(Personal Digital Assistant,PDA)、笔记本或其它任何具有联网功能的计算设备。调度机104和测试机集群105可以是服务器,也可以是计算机领域中的容器。调度机104中配置的数据库103可以为Redis数据库、结构化查询语言(Structured QueryLanguage,SQL)数据库或其他类型的数据库。终端设备101和服务器集群102之间通信的网络可以包括各种类型的有线和无线网络,例如但不局限于:互联网、局域网、无线保真(Wireless Fidelity,WIFI)、无线局域网(Wireless Local Area Networks,WLAN)、蜂窝通信网络(通用分组无线服务技术(General Packet Radio Service,GPRS)、码分多址(CodeDivision Multiple Access,CDMA)、2G/3G/4G/5G蜂窝网络)、卫星通信网络等等。
在了解了本申请的系统架构后,结合图2对本申请的压力测试方法的方案进行详细说明。
图2为本申请实施例提供的一种压力测试方法的流程示意图,本申请实施例提供了一种压力测试方法,该方法可以由任意执行压力测试方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在如图1所示的调度机104中。如图2所示,本申请实施例提供的压力测试方法包括如下步骤:
步骤201:接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源。
其中,资源为服务器资源,即测试机资源,具体为测试机的中央处理器(CentralProcessing Unit,CPU)处理压测任务的频率信息、内存存储空间信息、磁盘存储空间信息等。
具体的,测试人员可通过终端设备将大规格的压测任务并发给测试机集群中的调度机。其中,大规格的压测任务会自动分为多个压测任务,多个压测任务的规格可能相同,也可能不同。调度机在接收到多个压测任务后,根据压测任务的每秒查询率(Query PerSecond,QPS)、循环次数、基于历史处理相应规格压测任务耗时估算出的平均单次耗时、优先级、测试数据量级等参数进行计算,预估不同的压测任务所需要的资源。
步骤202:根据多个压测任务所需要的资源确定多个初始压测集群。
示例性的,预估不同的压测任务所需要的资源后,便可根据不同压测任务所需要的资源创建相互隔离的大、中、小不同规格的初始压测集群。而每一个初始压测集群的规格均有对应的最小阈值和最大阈值,其中,最小阈值和最大阈值组成该初始压测集群的阈值信息。然后将各初始压测集群的规格信息以及阈值信息存放在数据库中。
应该理解的是,划分的初始压测集群个数与压测任务个数可以相同,也可以不同,具体不做任何限定。
步骤203:采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
具体的,确定每个测试机的剩余资源,这些剩余资源组成各测试机的规格信息,然后将其存放在数据库中。其中,测试机的剩余资源也可以理解为测试机的空闲资源。例如,某个测试机能够处理5GB的压测请求,若该测试机内没有处理其他任务,则该测试机的剩余资源为5GB;若该测试机中的2GB被其他任务占用,则该测试机的剩余资源为3GB。
获取到各压测集群的阈值信息以及各测试机的规格信息后,便可从多个初始压测集群中,确定各测试机对应的初始压测集群。示例性的,通过获取各初始压测集群对应的最小阈值和最大阈值,针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
具体的,最小阈值到最大阈值构成该每个初始压测集群的阈值区间。数据库中可获取各个初始压测集群的阈值区间以及各测试机的规格信息,通过遍历各测试机的规格信息,并分别与每个初始压测集群的最大阈值和最小阈值对比,若某个测试机的规格信息处于某个第一压测集群的阈值区间内,便可确定当前测试机匹配的第一初始压测集群,并将该第一初始压测集群确定为当前测试机对应的初始压测集群,最后将当前测试机的地址写入确定的初始压测集群的集群队列中。例如,存在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中。
应理解,一个初始压测集群中可接收规格信息在阈值区间内的所有测试机,因此,写入一个初始压测集群中的测试机地址可以为零个,也可以为一个或多个。
在本示例中,通过遍历每个测试机的规格,并分别与每个初始压测集群的最大阈值和最小阈值对比,判断每个测试机的规格信息落入的阈值区间,便可以将相同或相近规格的测试机分配到对应的初始压测集群中。这样有利于压测集群接收与内部测试机规格近似的压测任务并进行处理,进一步提高了测试机资源利用率以及压测效率。
其中,与内部测试机规格近似的压测任务,可以理解为测试机所剩余的资源大小与压测任务所需要的资源大小之间的差值小于预设值。
步骤204:针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
具体的,压测集群划分完毕后,不同规格的压测任务便可根据所需要的资源自动决策并分配到相应规格的压测集群中,并使用对应压测集群中分配的各测试机处理压测任务。各测试机处理完成后,将测试结果反馈到调度机。例如:有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测试机接收并进行处理。
本申请提供的压力测试方法,通过接收终端设备发送的多个压测任务,并确定多个压测任务所需要的资源,然后根据多个压测任务所需要的资源确定多个初始压测集群,再采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群,最终针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群,并将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。在该方法中,通过采集各测试机的剩余资源,然后根据接收到的多个压测任务所需要的资源划分多个相互隔离的大、中、小压测集群。对比各测试机的剩余资源与每个初始压测集群的资源,将各测试机划分到相应的压测集群中。然后按照压测任务所需要的资源,调度机将压测任务分配到相应的压测集群中,并在各测试机的队列中按照顺序进行处理,进而实现了将相应规格的压测任务分配到与之规格对应各测试机组成的压测集群中进行处理。该方法避免了现有技术中小规格的测试机接收到大规格的压测请求,压测任务较多造成的排队时间加长,导致压测效率低,或者大规格的测试机接收到小规格的压测请求,造成的部分测试机资源闲置现象。从而充分对测试机的资源进行合理适配,提高了压测效率以及测试机资源的利用率。
接下来,将结合图3,对图2中根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群的具体实现过程进行详细说明。
图3为本申请实施例提供的另一种压力测试方法的流程示意图,如图3描述了各压测集群内部的测试机处理压测任务的过程。
步骤301:采集多个压测任务所需要的资源。
步骤302:根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
在本步骤中,根据压测任务所需要的资源可确定多个初始压测集群,因为初始压测集群个数与压测任务个数不尽相同,必然存在无法接收某个规格压测任务的初始压测集群。其中,存在与压测任务匹配的第一压测集群,可以理解为压测任务所需要的资源处于第一压测集群对应的阈值区间内,不存在与压测任务匹配的第一压测集群,可以理解为压测任务所需要的资源不处于第一压测集群对应的阈值区间内。例如:若某压测任务所需要的资源为3.2GB,此时仅存在1GB到3GB、4GB到6GB的两个初始压测集群,则不存在与该压测任务匹配的初始压测集群,进而无法确定与该压测任务匹配的第一压测集群。
其中,若存在与压测任务匹配的第一压测集群,则执行步骤303,若不存在,则执行步骤312。
步骤303:判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
其中,任一个第一压测集群可接收相同或相近规格的第一压测任务,因此,第一压测集群对应的第一压测任务可能有多个。另外,如前述实施例中所描述,第一压测集群中也会存在多个第一测试机,该多个第一测试机用于测试第一压测集群中的多个第一压测任务。
当所有第一压测任务所需要的资源的和不大于第一压测集群对应的所有第一测试机的剩余资源之和,则执行步骤304后,执行步骤314。若所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和,则执行步骤305。
在本步骤中,通过压测任务所需要的资源,优先将其分配到相应规格的压测集群中进行处理,从而提高了测试机资源利用率。
步骤304:将第一压测集群确定为目标压测集群。
步骤305:根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
具体的,第二压测集群的大小与第一压测集群的大小相同或相近,第一预设值为接近于0的值。当第一压测集群中第一测试机的剩余资源不足,无法处理第一压测任务,则首先考虑将超出第一测试机资源的第二压测任务漂移到与第一压测集群的大小相同或相近的第二压测集群。例如:第一压测集群中的第一测试机可处理1GB到3GB区间内的第一压测任务,目前第一压测任务中包含a、b两个第二压测任务,a、b分别需要测试机资源为2GB、2GB。因a、b两个压测任务共需要4GB资源,超出第一测试机能处理的3GB资源,故将a或b的2GB第二压测任务漂移到与第一压测集群大小相同或相近的第二压测集群。
步骤306:判断第二压测集群中是否存在空闲资源。
其中,若第二压测集群中存在剩余资源,则执行步骤307,否则,执行步骤309。
步骤307:判断空闲资源是否大于第二压测任务所需要的资源。
其中,第二压测任务为第一压测集群中超出第一测试机资源的压测任务。
具体的,若第二压测集群中存在剩余资源且其内部的第二测试机的剩余资源大于第二压测任务所需要的资源,则执行步骤308,然后执行步骤314。若第二压测集群中第二测试机的剩余资源不大于第二压测任务所需要的资源,或者第二压测集群中不存在剩余资源,则执行步骤309。
在本步骤中,判断与第一压测集群同规格的第二压测集群是否有足够可用的剩余资源,可以快速使用同规格的压测集群处理第二压测任务,节省了整体压测的时间,并充分利用了测试机的资源。
步骤308:将第二压测集群确定为目标压测集群。
步骤309:根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
步骤310:判断第三压测集群中是否存在空闲资源。
在本步骤中,第三压测集群的大小与第一压测集群的大小相差不小于第一预设值。例如,第一压测集群的大小为6GB到10GB,则第三压测集群可以为1GB到3GB,也可以为30GB到40GB。当存在第三压测集群时,统计第三压测集群中是否存在空闲资源。若存在则执行步骤311,若不存在,则执行步骤312。
步骤311:根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第三测试机为第三压测集群中处于空闲状态的测试机,并将第四压测集群确定为目标压测集群。
具体的,若第三压测集群的大小大于第一压测集群的大小,则将第三压测集群分裂出与第一压测集群的大小相同的第四压测集群;若第三压测集群的大小小于第一压测集群的大小,则将与第三压测集群的大小相同或相近的多个合并出与第一压测集群的大小相同的第四压测集群。例如,第一压测集群的大小为6GB到10GB,当第三压测集群为1GB到3GB,则合并多个相同或相近大小的第三压测集群,直到满足6GB到10GB要求,从而创建第四压测集群。当第三压测集群为30GB到40GB,可多次分裂出满足6GB到10GB要求,进而创建第四压测集群。第四压测集群创建成功后,则执行步骤314。
在本步骤中,当同规格的压测集群没有足够的剩余资源处理第二压测任务,则回收不同规格压测集群的剩余资源,通过压测集群合并、分裂的演化过程创建新集群,从而收集空余资源实现压测任务处理,进一步提高了压测效率和测试机资源利用率。
步骤312:判断是否存在第五压测集群,第五压测集群对应的第三压测任务的队列小于第二预设值。
在本步骤中,当不存在与第一压测任务匹配的第一压测集群或者未有足够可用的第三压测集群资源分裂或合并使得第四压测集群创建成功,则判断是否存在第五压测集群。其中,第五压测集群内部的第三压测任务小于第二预设值,第二预设值为第五压测集群的全部资源。例如:第五压测集群的全部资源为10GB到12GB,目前第三压测任务仅占用了2GB资源,则第五压测集群内部含有大量空闲资源,此时第五压测集群的第二预设值为10GB,也可以是12GB。
其中,若存在第五压测集群,则执行步骤313,再执行步骤314。若不存在,则无法确定目标压测集群,压测任务在原初始压测集群处理,执行结束。
步骤313:从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源;根据第五压测集群的大小,创建与压测任务对应的目标压测集群。
具体的,创建第六压测集群后,将第五压测集群对应的第三压测任务划分到第六压测集群中,将第二压测任务转发到第五压测集群,确定第五压测集群为目标压测集群,然后执行步骤314。应理解的是,优先确定与第五压测集群的大小相同或相近的第六压测集群,若无剩余资源大于第三压测任务所需资源,再确定与第五压测集群的大小不同的压测集群,直至创建一个与第五压测集群的大小相同的第六压测集群。
在本步骤中,通过回收空闲资源较多的测试机资源创建新的压测集群,进一步提高了压测效率和测试机资源利用率。
步骤314:确定目标压测集群后,将目标压测任务漂移至目标压测集群。
具体的,漂移为从原有的压测集群中删除,转发到目标压测集群。调度机获取目标压测集群对应的各目标压测任务的优先级,按照优先级从高到低的顺序,批量将目标压测任务发送给目标测试机。
在一种可能的实现方式中,在单个目标压测集群内各测试机的队列中,各测试机接收到新的压测任务,仍会动态调整各压测任务在各测试机队列内的执行顺序,以保障高优先级任务优先执行。
在本步骤中,动态调整测试机队列中不同压测任务的执行顺序,可以优先执行优先级较高的压测任务,从而进一步缩短处理压测任务的整体时长,提高压测效率。
在本实施例中,通过实时监控每个压测集群中处理压测任务的负载情况,及时将超过压测集群规格的压测任务漂移到剩余资源较多的压测集群中进行处理;若没有足够的剩余测试机资源处理超出压测集群规格的压测任务,便通过集群演化创建新的压测集群,同时按照优先级顺序动态调整测试机队列中处理压测任务的顺序。从而充分调度所有测试机的剩余资源,减少压测任务在各测试机队列中的排队时间,进一步提高了测试机资源利用率和压测效率。
图4为本申请实施例提供的一种压力测试装置40的结构示意图,示例的,请参见图4所示,该压力测试装置40可以包括:
接收模块401,用于接收终端设备发送的多个压测任务。
确定模块402,用于确定多个压测任务所需要的资源。
确定模块402,还用于根据多个压测任务所需要的资源确定多个初始压测集群。
确定模块402,还用于采集各测试机的剩余资源,并根据各测试机的剩余资源,从多个初始压测集群中,确定各测试机对应的初始压测集群。
确定模块402,还用于针对每个压测任务,根据压测任务所需要的资源,从多个初始压测集群中确定与压测任务对应的目标压测集群。
发送模块403,用于将压测任务发送给目标压测集群对应的目标测试机,压测任务用于指示目标测试机进行压力测试。
可选的,确定模块402,具体用于:
根据压测任务所需要的资源和多个初始压测集群中每个初始压测集群的大小,确定是否存在与压测任务匹配的第一压测集群。
若存在与压测任务匹配的第一压测集群,则判断与第一压测集群对应的所有第一压测任务所需要的资源的和是否大于第一压测集群对应的所有第一测试机的剩余资源之和。
若不大于,则将第一压测集群确定为目标压测集群。
可选的,该装置还包括:判断模块404;
确定模块402,还用于在与第一压测集群对应的所有第一压测任务所需要的资源的和大于第一压测集群对应的所有第一测试机的剩余资源之和时,根据每个初始压测集群的大小,确定第二压测集群,第二压测集群的大小与第一压测集群的大小之间的差值小于第一预设值。
判断模块404,用于判断第二压测集群中是否存在空闲资源。
判断模块404,还用于在第二压测集群中存在空闲资源时,判断空闲资源是否大于第二压测任务所需要的资源。
确定模块402,还用于在空闲资源大于第二压测任务所需要的资源时,将第二压测集群确定为第二压测任务对应的目标压测集群。
可选的,该装置还包括:创建模块405;
确定模块402,还用于当空闲资源不大于压测任务所需要的资源时,根据每个初始压测集群的大小,确定第三压测集群,第三压测集群的大小与第一压测集群的大小之间的差值不小于第一预设值。
判断模块404,还用于判断第三压测集群中是否存在空闲资源。
创建模块405,用于当第三压测集群中存在空闲资源时,根据第三压测集群中的空闲资源,创建第四压测集群,第四压测集群的大小和第一压测集群的大小之间的差值小于第一预设值,第四压测集群对应的第二测试机为第三压测集群中处于空闲状态的测试机。
确定模块402,还用于将第四压测集群确定为目标压测集群。
可选的,判断模块404,还用于在不存在与压测任务匹配的第一压测集群时,判断是否存在第五压测集群,第五压测集群对应的第二压测任务的队列小于第二预设值。
确定模块402,还用于当存在第五压测集群时,从多个初始压测集群中创建第六压测集群,并将第五压测集群对应的第三压测任务划分到第六压测集群中,第六压测集群中的空闲资源大于第五压测集群对应的第三压测任务所占用的资源。
创建模块405,还用于根据第五压测集群的大小,创建与第三压测任务对应的目标压测集群。
可选的,发送模块403,具体用于:
获取目标压测集群对应的各目标压测任务的优先级。
按照优先级从高到底的顺序,依次将目标压测任务发送给目标测试机。
可选的,确定模块402,具体用于:
获取各初始压测集群对应的最小阈值和最大阈值。
针对各测试机,判断是否存在第一初始压测集群,其中,测试机的剩余资源大于或等于第一初始压测集群的最小阈值,且小于或等于第一初始压测集群的最大阈值。
若存在,则将第一初始压测集群确定为测试机对应的初始压测集群。
本申请实施例提供的压力测试装置40,可以执行上述任一个实施例中的压力测试方法的技术方案,其实现原理以及有益效果与压力测试方法的实现原理及有益效果类似,可参见压力测试方法的实现原理及有益效果,此处不再进行赘述。
图5为本申请实施例提供的一种服务器50的结构示意图,示例的,请参见图5所示,该终端设备可以包括处理器501和存储器502;其中,
存储器502,用于存储计算机程序。
处理器501,用于读取存储器502存储的计算机程序,并根据存储器502中的计算机程序执行上述任一个实施例中的压力测试方法的技术方案。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。当存储器502是独立于处理器501之外的器件时,服务器还可以包括:总线,用于连接存储器502和处理器501。
可选地,本实施例还包括:通信接口,该通信接口可以通过总线与处理器501连接。处理器501可以控制通信接口来实现上述服务器的获取和发送的功能。
本申请实施例所示的服务器,可以执行上述任一个实施例中的压力测试方法的技术方案,其实现原理以及有益效果与压力测试方法的实现原理及有益效果类似,可参见压力测试方法的实现原理及有益效果,此处不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述任一个实施例中的压力测试方法的技术方案,其实现原理以及有益效果与压力测试方法的实现原理及有益效果类似,可参见压力测试方法的实现原理及有益效果,此处不再进行赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所展示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元展示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。
应理解的是,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital SignalProcessor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (9)

1.一种压力测试方法,其特征在于,包括:
接收终端设备发送的多个压测任务,并确定所述多个压测任务所需要的资源;
根据所述多个压测任务所需要的资源确定多个初始压测集群,其中,根据不同压测任务所需要的资源创建相互隔离的大、中、小不同规格的初始压测集群,每一个初始压测集群的规格均有对应的最小阈值和最大阈值,所述最小阈值和最大阈值组成该初始压测集群的阈值;
采集各测试机的剩余资源,并根据所述各测试机的剩余资源,从所述多个初始压测集群中,确定所述各测试机对应的初始压测集群,其中,通过遍历每个测试机的规格,并分别与每个初始压测集群的最大阈值和最小阈值对比,判断每个测试机的规格信息落入的阈值区间,以将相同或相近规格的测试机分配到对应的初始压测集群中;
针对每个压测任务,根据所述压测任务所需要的资源,从所述多个初始压测集群中确定与所述压测任务对应的目标压测集群,并将所述压测任务发送给所述目标压测集群对应的目标测试机,所述压测任务用于指示所述目标测试机进行压力测试;
所述根据所述压测任务所需要的资源,从所述多个初始压测集群中确定与所述压测任务对应的目标压测集群,包括:
根据所述压测任务所需要的资源和所述多个初始压测集群中每个初始压测集群的大小,确定是否存在与所述压测任务匹配的第一压测集群;
若存在与所述压测任务匹配的第一压测集群,则判断与所述第一压测集群对应的所有第一压测任务所需要的资源的和是否大于所述第一压测集群对应的所有第一测试机的剩余资源之和;
若不大于,则将所述第一压测集群确定为所述目标压测集群;
其中,通过实时监控每个压测集群中处理压测任务的负载情况,及时将超过压测集群规格的压测任务漂移到剩余资源多的压测集群中进行处理;若没有足够的剩余测试机资源处理超出压测集群规格的压测任务,则通过集群演化创建新的压测集群,同时按照优先级顺序动态调整测试机队列中处理压测任务的顺序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若与所述第一压测集群对应的所有第一压测任务所需要的资源的和大于所述第一压测集群对应的所有第一测试机的剩余资源之和,则根据所述每个初始压测集群的大小,确定第二压测集群,所述第二压测集群的大小与所述第一压测集群的大小之间的差值小于第一预设值;
判断所述第二压测集群中是否存在空闲资源;
若所述第二压测集群中存在空闲资源,则判断所述空闲资源是否大于第二压测任务所需要的资源;
若所述空闲资源大于所述第二压测任务所需要的资源,则将所述第二压测集群确定为所述第二压测任务对应的目标压测集群。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述空闲资源不大于所述压测任务所需要的资源,则根据所述每个初始压测集群的大小,确定第三压测集群,所述第三压测集群的大小与所述第一压测集群的大小之间的差值不小于所述第一预设值;
判断所述第三压测集群中是否存在空闲资源;
若所述第三压测集群中存在空闲资源,则根据所述第三压测集群中的空闲资源,创建第四压测集群,所述第四压测集群的大小和所述第一压测集群的大小之间的差值小于所述第一预设值,所述第四压测集群对应的第二测试机为所述第三压测集群中处于空闲状态的测试机;
将所述第四压测集群确定为所述目标压测集群。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若不存在与所述压测任务匹配的第一压测集群,则判断是否存在第五压测集群,所述第五压测集群对应的第三压测任务的队列小于第二预设值;
若存在第五压测集群,则从所述多个初始压测集群中确定第六压测集群,并将所述第五压测集群对应的第三压测任务划分到所述第六压测集群中,所述第六压测集群中的空闲资源大于所述第五压测集群对应的第三压测任务所占用的资源;
根据所述第五压测集群的大小,创建与所述压测任务对应的目标压测集群。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述压测任务发送给所述目标压测集群对应的目标测试机,包括:
获取所述目标压测集群对应的各目标压测任务的优先级;
按照所述优先级从高到底的顺序,依次将所述目标压测任务发送给所述目标测试机。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述各测试机的剩余资源,从所述多个初始压测集群中,确定所述各测试机对应的初始压测集群,包括:
获取所述各初始压测集群对应的最小阈值和最大阈值;
针对各所述测试机,判断是否存在第一初始压测集群,其中,所述测试机的剩余资源大于或等于所述第一初始压测集群的最小阈值,且小于或等于所述第一初始压测集群的最大阈值;
若存在,则将所述第一初始压测集群确定为所述测试机对应的初始压测集群。
7.一种压力测试装置,包括:
接收模块,用于接收终端设备发送的多个压测任务,并确定所述多个压测任务所需要的资源;
确定模块,用于根据所述多个压测任务所需要的资源确定多个初始压测集群,其中,根据不同压测任务所需要的资源创建相互隔离的大、中、小不同规格的初始压测集群,每一个初始压测集群的规格均有对应的最小阈值和最大阈值,所述最小阈值和最大阈值组成该初始压测集群的阈值;
所述确定模块,还用于采集各测试机的剩余资源,并根据所述各测试机的剩余资源,从所述多个初始压测集群中,确定所述各测试机对应的初始压测集群,其中,通过遍历每个测试机的规格,并分别与每个初始压测集群的最大阈值和最小阈值对比,判断每个测试机的规格信息落入的阈值区间,以将相同或相近规格的测试机分配到对应的初始压测集群中;
发送模块,用于针对每个压测任务,根据所述压测任务所需要的资源,从所述多个初始压测集群中确定与所述压测任务对应的目标压测集群,并将所述压测任务发送给所述目标压测集群对应的目标测试机,所述压测任务用于指示所述目标测试机进行压力测试;
所述发送模块,具体用于根据所述压测任务所需要的资源和所述多个初始压测集群中每个初始压测集群的大小,确定是否存在与所述压测任务匹配的第一压测集群;
若存在与所述压测任务匹配的第一压测集群,则判断与所述第一压测集群对应的所有第一压测任务所需要的资源的和是否大于所述第一压测集群对应的所有第一测试机的剩余资源之和;
若不大于,则将所述第一压测集群确定为所述目标压测集群;
其中,通过实时监控每个压测集群中处理压测任务的负载情况,及时将超过压测集群规格的压测任务漂移到剩余资源多的压测集群中进行处理;若没有足够的剩余测试机资源处理超出压测集群规格的压测任务,则通过集群演化创建新的压测集群,同时按照优先级顺序动态调整测试机队列中处理压测任务的顺序。
8.一种服务器,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器,存储计算机执行指令;
所述处理器,执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任一项所述的压力测试方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的压力测试方法。
CN202111226042.3A 2021-10-21 2021-10-21 压力测试方法、装置、设备和存储介质 Active CN113886050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111226042.3A CN113886050B (zh) 2021-10-21 2021-10-21 压力测试方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111226042.3A CN113886050B (zh) 2021-10-21 2021-10-21 压力测试方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113886050A CN113886050A (zh) 2022-01-04
CN113886050B true CN113886050B (zh) 2024-06-04

Family

ID=79004010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111226042.3A Active CN113886050B (zh) 2021-10-21 2021-10-21 压力测试方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113886050B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500123A (zh) * 2013-10-12 2014-01-08 浙江大学 异构环境中并行计算调度方法
CN106649088A (zh) * 2016-10-09 2017-05-10 网易(杭州)网络有限公司 一种分布式压力测试方法和系统
CN109936471A (zh) * 2017-12-18 2019-06-25 北京图森未来科技有限公司 一种多集群的资源分配方法和装置
CN109976907A (zh) * 2019-03-11 2019-07-05 百度在线网络技术(北京)有限公司 任务分配方法和系统、电子设备、计算机可读介质
CN111338785A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 资源调度方法及装置、电子设备、存储介质
WO2020143164A1 (zh) * 2019-01-08 2020-07-16 平安科技(深圳)有限公司 一种网络资源的分配方法及设备
CN111459795A (zh) * 2020-02-27 2020-07-28 平安科技(深圳)有限公司 集群的压力测试方法及装置、计算机设备、存储介质
CN111722917A (zh) * 2020-06-30 2020-09-29 北京来也网络科技有限公司 性能测试任务的资源调度方法、装置和设备
CN112783607A (zh) * 2021-01-29 2021-05-11 上海哔哩哔哩科技有限公司 容器集群中任务部署方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500123A (zh) * 2013-10-12 2014-01-08 浙江大学 异构环境中并行计算调度方法
CN106649088A (zh) * 2016-10-09 2017-05-10 网易(杭州)网络有限公司 一种分布式压力测试方法和系统
CN109936471A (zh) * 2017-12-18 2019-06-25 北京图森未来科技有限公司 一种多集群的资源分配方法和装置
CN111338785A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 资源调度方法及装置、电子设备、存储介质
WO2020143164A1 (zh) * 2019-01-08 2020-07-16 平安科技(深圳)有限公司 一种网络资源的分配方法及设备
CN109976907A (zh) * 2019-03-11 2019-07-05 百度在线网络技术(北京)有限公司 任务分配方法和系统、电子设备、计算机可读介质
CN111459795A (zh) * 2020-02-27 2020-07-28 平安科技(深圳)有限公司 集群的压力测试方法及装置、计算机设备、存储介质
CN111722917A (zh) * 2020-06-30 2020-09-29 北京来也网络科技有限公司 性能测试任务的资源调度方法、装置和设备
CN112783607A (zh) * 2021-01-29 2021-05-11 上海哔哩哔哩科技有限公司 容器集群中任务部署方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center;Benjamin Hindman 等;《8th USENIX Symposium on Networked Systems Design and Implementation》;20111231;1-14 *
容器云资源调度策略的改进;崔广章 等;《计算机与数字工程》;20171020;第45卷(第10期);1931-1936 *

Also Published As

Publication number Publication date
CN113886050A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN111258737B (zh) 一种资源调度的方法、装置和过滤式调度器
US20160266929A1 (en) Cpu scheduling method, terminal device and processing device
CN112003797B (zh) 一种虚拟化dpdk网络性能提高方法、系统、终端及存储介质
CN107301093B (zh) 一种管理资源的方法和装置
CN111124277A (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
CN107430526B (zh) 用于调度数据处理的方法和节点
CN103761146A (zh) 一种MapReduce动态设定slots数量的方法
CN109828790B (zh) 一种基于申威异构众核处理器的数据处理方法和系统
CN111949568A (zh) 一种报文处理方法、装置及网络芯片
CN112306369A (zh) 一种数据处理方法、装置、服务器及存储介质
CN111586140A (zh) 一种数据交互的方法及服务器
CN110557432A (zh) 一种缓存池均衡优化方法、系统、终端及存储介质
CN113886050B (zh) 压力测试方法、装置、设备和存储介质
CN111580951A (zh) 一种任务分配方法及资源管理平台
CN111400241B (zh) 数据重构方法和装置
CN116089477B (zh) 分布式训练方法及系统
CN104866370A (zh) 一种云计算环境下面向并行应用的动态时间片调度方法及系统
CN112380001A (zh) 日志输出方法、负载均衡设备及计算机可读存储介质
CN115617733B (zh) RapidIO网络报文转换方法、系统及设备
CN114048033A (zh) 跑批任务的负载均衡方法、装置及计算机设备
CN105939278B (zh) 一种流量处理方法及装置
CN110209475B (zh) 数据采集方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant