CN109284229B - 一种基于qps的动态调整方法以及相关设备 - Google Patents
一种基于qps的动态调整方法以及相关设备 Download PDFInfo
- Publication number
- CN109284229B CN109284229B CN201811208616.2A CN201811208616A CN109284229B CN 109284229 B CN109284229 B CN 109284229B CN 201811208616 A CN201811208616 A CN 201811208616A CN 109284229 B CN109284229 B CN 109284229B
- Authority
- CN
- China
- Prior art keywords
- target
- qps
- task
- thread
- preset
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本发明实施例提供了一种基于QPS的动态调整方法及相关设备,可以减少压力测试中的用户工作量,提高用户体验。该方法包括:获取目标任务,所述目标任务为待执行压力测试的任务;确定所述目标任务执行压力测试所需要的目标线程数;基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;通过所述目标施压机对所述目标任务执行压力测试;获取所述目标施压机的每秒查询率QPS;判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种基于QPS的动态调整方法以及相关设备。
背景技术
传统压测平台如NGrinder、Jmeter压测模式只有并发量即线程的设置,压测统计数据的考虑大都是每秒查询率(Query Per Second,QPS)和响应时间(response time,RT);针对有登录的压测,一个线程模拟一个用户,这种测试方案是可行的。
针对HTTP协议这种无状态的压测,目前业界的压测平台大都是通过设置并发量达到一定QPS判断RT的大小作为性能的评判标准,这种测试方案需要用户对执行压测的线程数进行预估,并不停的进行设置,这样会造成用户的工作量巨大,且用户体验不好。
发明内容
本发明实施例提供了一种基于QPS的动态调整方法及相关设备,可以减少压力测试中用户的工作量,提高用户体验。
本发明实施例的第一方面提供了一种基于QPS的动态调整方法,包括:
获取目标任务,所述目标任务为待执行压力测试的任务;
确定所述目标任务执行压力测试所需要的目标线程数;
基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
通过所述目标施压机对所述目标任务执行压力测试;
获取所述目标施压机的每秒查询率QPS;
判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配包括:
获取所述目标任务的响应时长RT;
当所述目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,调整后的所述休眠时间与所述目标任务的RT的和值满足第一预设条件,所述第一线程为所述目标施压机中的线程,且所述第一线程与所述目标任务具有关联关系;
当所述目标任务的RT大于所述第一预设值时,则调整所述第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,其中,调整后的所述休眠时间等于0。
可选地,当所述第一线程的压测接口的休眠时间等于0,且所述目标施压机的QPS与所述预设QPS不相匹配时,所述包括:
调整所述目标施压机的线程数,直至所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述基于所述目标线程数确定目标施压机包括:
遍历施压机集群中各施压机的空闲线程数;
将所述施压机集群中空闲线程数大于所述目标线程数的施压机确定为所述目标施压机。
可选地,当所述施压机集群中不存在空闲线程数大于所述目标线程数的施压机时,所述方法还包括:
获取所述施压机集群中空闲线程数大于第二预设值的第一施压机;
调整所述第一施压机中使用的线程,以使得调整后的所述第一施压机的空闲线程数大于所述目标线程数;
将调整后的所述第一施压机确定为所述目标施压机。
本发明实施例第二方面提供了一种基于QPS的动态调整装置,包括:
第一获取单元,用于获取目标任务,所述目标任务为待执行压力测试的任务;
第一确定单元,用于确定所述目标任务执行压力测试所需要的目标线程数;
第二确定单元,用于基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
测试单元,用于通过所述目标施压机对所述目标任务执行压力测试;
第二获取单元,用于获取所述目标施压机的每秒查询率QPS;
判断单元,用于判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
调整单元,用于当所述目标施压机的QPS与所述预设QPS不相匹配时,动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述调整单元具体用于:
获取所述目标任务的响应时长RT;
当所述目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,调整后的所述休眠时间与所述目标任务的RT的和值满足第一预设条件,所述第一线程为所述目标施压机中的线程,且所述第一线程与所述目标任务具有关联关系;
当所述目标任务的RT大于所述第一预设值时,则调整所述第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,其中,调整后的所述休眠时间等于0。
可选地,所述调整单元还具体用于:
当所述第一线程的压测接口的休眠时间等于0,且所述目标施压机的QPS与所述预设QPS不相匹配时,调整所述目标施压机的线程数,直至所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述第二确定单元具体用于:
遍历施压机集群中各施压机的空闲线程数;
将所述施压机集群中空闲线程数大于所述目标线程数的施压机确定为所述目标施压机。
可选地,所述第二确定单元还具体用于:
当所述施压机集群中不存在空闲线程数大于所述目标线程数的施压机时,获取所述施压机集群中空闲线程数大于第二预设值的第一施压机;
调整所述第一施压机中使用的线程,以使得调整后的所述第一施压机的空闲线程数大于所述目标线程数;
将调整后的所述第一施压机确定为所述目标施压机。
本发明第三方面提供了一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如上述任意一项所述的基于QPS的动态调整方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如上述任意一项所述的基于QPS的动态调整方法的步骤。
综上所述,可以看出,本发明提供的实施例中,基于QPS的动态调整装置在对目标任务进行压力测试的过程中,只需要接收用户输入的预设QPS即可,不需要用户在继续进行设置,即可以对目标任务进行压力测试,相对于现有技术中需要用户不停的设置线程数进行人工调节,可以减少用户的工作量,提高用户体验。
附图说明
图1为本发明实施例提供的一种基于QPS的动态调整方法的流程示意图;
图2为本发明实施例提供的一种基于QPS的动态调整装置的实施例示意图;
图3为本发明实施例提供的一种基于QPS的动态调整装置的硬件结构示意图;
图4为本发明实施例提供的一种电子设备的实施例示意图;
图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
本发明实施例提供了一种基于QPS的动态调整方法及相关设备,可以减少压力测试中用户的工作量,提高用户体验。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面从基于QPS的动态调整装置的角度对基于QPS的动态调整方法进行说明,该基于QPS的动态调整装置可以为服务器,也可以为服务器中的服务单元。
请参阅图1,图1为本发明实施例提供的基于QPS的动态调整方法的一个实施例示意图,包括:
101、获取目标任务。
本实施例中,当需要对一个任务进行压力测试的时候,基于QPS的动态调整装置可以首先获取该任务,即目标任务,其中该目标任务为待执行压力测试的任务,具体的,该目标任务例如可以是一个脚本,也可以是一个软件,具体不做限定,另外,也具体不限定如何获取目标任务的。
102、确定目标任务执行压力测试所需要的目标线程数。
本实施例中,基于QPS的动态调整装置在得到目标任务之后,可以确定对该目标任务执行压力测试所需要的目标线程数。
103、基于目标线程数确定目标施压机。
本实施例中,基于QPS的动态调整装置可以基于目标线程数确定目标施压机,该目标试压机为对目标任务执行压力测试的试压机。
需要说明的是,为了便于理解,此处可以将施压机资源抽象成算力,其中,算力实际上是一种简单的算法,假设一台施压机最多能承受100个线程运行,那么它的算力值就是100,在分配任务时,这台机器,只分配少于100线程的压测任务,同理的,也可以将该算力应用至目标任务,即得到对目标任务进行压力测试需要多少算力,例如对该目标任务进行压力测试需要的目标线程数是50,则对目标任务进行压力测试需要的算力就是50。
下面对基于QPS的动态调整装置是如何基于目标线程数确定目标试压机进行详细说明,具体如下:
基于QPS的动态调整装置可以遍历施压机集群中各施压机的空闲线程数,之后将施压机集群中空闲线程数大于或等于目标线程数的试压机确定为目标试压机。也就是说,此处可以首先获取试压机集群中各个施压机的空闲线程数(即各个施压机中有多少的算力),此时包括了两种情况,第一种情况就是施压机集群中有施压机的空闲线程数是大于或等于目标线程数的,第二种情况就是施压机集群中所有施压机的空闲线程数均是小于目标线程数的,下面对两种情况分别进行说明:
对于第一种情况,由于事先已经知道了对目标任务进行压力测试需要的目标线程数,此时即可以知道施压机集群中有哪些施压机的空闲线程数是大于目标线程数的,也即知道了可以对目标任务执行压力测试的目标施压机。
对于第二种情况,当施压机集群中不存在空闲线程数大于或等于目标线程数的施压机时,则获取施压机集群中空闲线程数大于第二预设值的第一施压机;调整第一施压机中使用的线程,以使得调整后的第一施压机的空闲线程数等于目标线程数;将调整后的第一施压机确定为所述目标施压机。
也就是说,对于第二种情况,可以首先获取施压机集群中各施压机的空闲线程数,之后,确定出施压机集群中空闲线程数大于第二预设值的第一施压机,之后,调整第一施压机中使用的线程,使得调整后的第一施压机的空闲线程数大于目标线程数。假设对目标任务执行压力测试需要50算力,而施压机集群中各施压机的可用算力均不到50,此时,可以将施压机集群中空闲算力大于40的施压机作为第一施压机,之后,随机挑选一个施压机,并调整该施压机的空闲算力,也即将施压机目标正在执行的任务调整到其他的施压机中,是的调整后的第一施压机的空闲算力大于对目标任务进行压力测试所需要的算力,也就是说,该调整后的第一施压机即为目标施压机。
104、通过目标施压机对目标任务执行压力测试。
本实施例中,基于QPS的动态调整装置,在得到目标施压机之后,可以通过该目标施压机对目标任务执行压力测试。
105、获取目标施压机的每秒查询率QPS。
本实施例中,基于QPS的动态调整装置可以获取目标施压机的QPS,具体的,目标施压机在对目标任务进行压力测试的过程中,每隔500ms会获取一个目标控制单元列表,该目标控制单元列表指的任务分布在哪些施压机的一个列表,并且这个列表里中还包括执行压力测试的任务的施压机的主机状态,以及每个有任务的施压机产生的实际QPS等信息。
106、判断目标施压机的QPS与预设QPS是否匹配,若否,则执行步骤107。
本实施例中,基于QPS的动态调整装置在获取到目标施压机的QPS之后,可以将目标施压机的QPS与预设QPS进行对比,以判断目标施压机的QPS与预设QPS是否匹配,也即判断下,目标施压机的QPS相对于预设QPS的波动范围是否在预设范围内,当该施压机的QPS与预设QPS不相匹配时,则执行步骤107,其中,该预设QPS与目标任务具有关联关系,也就是说,该预设QPS是该目标任务期望达到的QPS。
107、动态调整目标施压机的QPS,以使得目标施压机的QPS与预设QPS相匹配。
本实施例中,当基于QPS的动态调整装置在确定目标施压机的QPS与预设QPS不相匹配的时候,可以动态调整目标施压机的QPS,是的调整后的目标施压机的QPS与预设QPS相匹配。下面说明如何东条调整目标施压机的QPS:
可以理解的是,休眠时间sleepTime的核心是控制一个线程产生QPS的大小,考虑到一个施压机上对线程的影响因素最大的是:任务的cpu计算时间和cpu等待时间,正常情况RT很小的接口对应同一施压机最优线程较小,基于上述说明,可以通过调整接口的sleeptime来动态调整目标施压机的QPS,具体如下:
获取目标任务的响应时长RT;
当目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整目标施压机的QPS,调整后的所述休眠时间与目标任务的RT的和值满足第一预设条件,第一线程为所述目标施压机中的线程,且第一线程与目标任务具有关联关系;
当所述目标任务的RT大于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整目标施压机的QPS,其中,调整后的休眠时间等于0。
也就是说,可以获取目标任务的RT,之后,判断RT是否大于第一预设值,此处可以设置第一预设值为200ms,当RT小于200ms时,则调整第一线程的压测接口的休眠时间(可以理解的是,该第一线程为对目标任务执行压力测试的其中一个线程),调整后的休眠时间与RT的和值满足第一预设条件,此处可以将该第一预设条件设置为RT+休眠时间=200ms,当然也还可以是其他数值,具体不限定。
当RT大于200ms时,同样需要调整第一线程的压测接口的休眠时间,以对目标施压机的QPS进行动态调整,此处由于响应时长RT已经很大了,因此为了使得目标施压机的QPS与预设QPS相匹配,则需要减少休眠时间,此时可以将休眠时间设置为0。
需要说明的是,当第一线程的压测接口的休眠时间等于0,且目标施压机的QPS与预设QPS不相匹配时,调整目标施压机的线程数,直至目标施压机的QPS与所述预设QPS相匹配。也就是说,当该休眠时间调整为0之后,该目标施压机的QPS与预设QPS仍旧不匹配,此时,可以对目标施压机的线程数进行扩容,由于施压机都会预留一部分算力,例如会预留30%的算力,此时,该第二预设条件即可以为目标施压机的线程数扩容至目标施压机的总线程数70%。
可以理解的是,可以在目标施压机的线程进行扩容的过程中随时监控预设QPS与目标施压机的QPS是否匹配,当匹配时,则停止扩容。另外,当目标施压机的线程数扩容至70%之后,目标施压机的QPS与预设QPS仍然没有匹配,则可以将目标施压机执行的其他任务进行调整,以满足目标任务的需求(具体不做限定,基于目标任务与其他任务的重要程度来确定是否调整其他任务至其他施压机执行测试)。
综上所述,可以看出,本发明提供的实施例中,基于QPS的动态调整装置在对目标任务进行压力测试的过程中,只需要接收用户输入的预设QPS即可,不需要用户在继续进行设置,即可以对目标任务进行压力测试,相对于现有技术中需要用户不停的设置线程数进行人工调节,可以减少用户的工作量,提高用户体验。
上面对本发明实施例中基于QPS的动态调整方法进行了描述,下面对本发明实施例中的基于QPS的动态调整装置进行描述。
请参阅图2,本发明实施例中基于QPS的动态调整装置的一个实施例,该基于QPS的动态调整装置包括:
第一获取单元201,用于获取目标任务,所述目标任务为待执行压力测试的任务;
第一确定单元202,用于确定所述目标任务执行压力测试所需要的目标线程数;
第二确定单元203,用于基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
测试单元204,用于通过所述目标施压机对所述目标任务执行压力测试;
第二获取单元205,用于获取所述目标施压机的每秒查询率QPS;
判断单元206,用于判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
调整单元207,用于当所述目标施压机的QPS与所述预设QPS不相匹配时,动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述调整单元207具体用于:
获取所述目标任务的响应时长RT;
当所述目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,调整后的所述休眠时间与所述目标任务的RT的和值满足第一预设条件,所述第一线程为所述目标施压机中的线程,且所述第一线程与所述目标任务具有关联关系;
当所述目标任务的RT大于所述第一预设值时,则调整所述第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,其中,调整后的所述休眠时间等于0。
可选地,所述调整单元207还具体用于:
当所述第一线程的压测接口的休眠时间等于0,且所述目标施压机的QPS与所述预设QPS不相匹配时,调整所述目标施压机的线程数,直至所述目标施压机的QPS与所述预设QPS相匹配。
可选地,所述第二确定单元203具体用于:
遍历施压机集群中各施压机的空闲线程数;
将所述施压机集群中空闲线程数大于所述目标线程数的施压机确定为所述目标施压机。
可选地,所述第二确定单元203还具体用于:
当所述施压机集群中不存在空闲线程数大于所述目标线程数的施压机时,获取所述施压机集群中空闲线程数大于第二预设值的第一施压机;
调整所述第一施压机中使用的线程,以使得调整后的所述第一施压机的空闲线程数大于所述目标线程数;
将调整后的所述第一施压机确定为所述目标施压机。
上面图2从模块化功能实体的角度对本发明实施例中的基于QPS的动态调整装置进行了描述,下面从硬件处理的角度对本发明实施例中的基于QPS的动态调整装置进行详细描述,请参阅图3,本发明实施例中的基于QPS的动态调整装置300一个实施例,包括:
输入装置301、输出装置302、处理器303和存储器304(其中处理器303的数量可以一个或多个,图3中以一个处理器303为例)。在本发明的一些实施例中,输入装置301、输出装置502、处理器303和存储器304可通过总线或其它方式连接,其中,图3中以通过总线连接为例。
其中,通过调用存储器304存储的操作指令,处理器303,用于执行如下步骤:
获取目标任务,所述目标任务为待执行压力测试的任务;
确定所述目标任务执行压力测试所需要的目标线程数;
基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
通过所述目标施压机对所述目标任务执行压力测试;
获取所述目标施压机的每秒查询率QPS;
判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
通过调用存储器304存储的操作指令,处理器303,还用于执行图1对应的实施例中的任一方式。
请参阅图4,图4为本发明实施例提供的电子设备的实施例示意图。
如图4所示,本发明实施例提供了一种电子设备,包括存储器410、处理器420及存储在存储器420上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
获取目标任务,所述目标任务为待执行压力测试的任务;
确定所述目标任务执行压力测试所需要的目标线程数;
基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
通过所述目标施压机对所述目标任务执行压力测试;
获取所述目标施压机的每秒查询率QPS;
判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本发明实施例中一种基于QPS的动态调整装置所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。
请参阅图5,图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:
获取目标任务,所述目标任务为待执行压力测试的任务;
确定所述目标任务执行压力测试所需要的目标线程数;
基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
通过所述目标施压机对所述目标任务执行压力测试;
获取所述目标施压机的每秒查询率QPS;
判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
在具体实施过程中,该计算机程序511被处理器执行时可以实现图1对应的实施例中任一实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的风电场数字化平台设计的方法中的流程。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修该,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于QPS的动态调整方法,其特征在于,包括:
获取目标任务,所述目标任务为待执行压力测试的任务;
确定所述目标任务执行压力测试所需要的目标线程数;
基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机;
所述基于所述目标线程数确定目标施压机包括:遍历施压机集群中各施压机的空闲线程数,当所述施压机集群中不存在空闲线程数大于所述目标线程数的施压机时,获取所述施压机集群中空闲线程数大于第二预设值的第一施压机,调整所述第一施压机中使用的线程,以使得调整后的所述第一施压机的空闲线程数大于所述目标线程数,将调整后的所述第一施压机确定为所述目标施压机;
通过所述目标施压机对所述目标任务执行压力测试;
获取所述目标施压机的每秒查询率QPS;
判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
若否,则动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
2.根据权利要求1所述的方法,其特征在于,所述动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配包括:
获取所述目标任务的响应时长RT;
当所述目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,调整后的所述休眠时间与所述目标任务的RT的和值满足第一预设条件,所述第一线程为所述目标施压机中的线程,且所述第一线程与所述目标任务具有关联关系;
当所述目标任务的RT大于所述第一预设值时,则调整所述第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,其中,调整后的所述休眠时间等于0。
3.根据权利要求2所述的方法,其特征在于,当所述第一线程的压测接口的休眠时间等于0,且所述目标施压机的QPS与所述预设QPS不相匹配时,所述包括:
调整所述目标施压机的线程数,直至所述目标施压机的QPS与所述预设QPS相匹配。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标线程数确定目标施压机包括:
遍历施压机集群中各施压机的空闲线程数;
将所述施压机集群中空闲线程数大于所述目标线程数的施压机确定为所述目标施压机。
5.一种基于QPS的动态调整装置,其特征在于,包括:
第一获取单元,用于获取目标任务,所述目标任务为待执行压力测试的任务;
第一确定单元,用于确定所述目标任务执行压力测试所需要的目标线程数;
第二确定单元,用于基于所述目标线程数确定目标施压机,所述目标施压机为对所述目标任务执行压力测试的施压机,所述基于所述目标线程数确定目标施压机包括:遍历施压机集群中各施压机的空闲线程数,当所述施压机集群中不存在空闲线程数大于所述目标线程数的施压机时,获取所述施压机集群中空闲线程数大于第二预设值的第一施压机,调整所述第一施压机中使用的线程,以使得调整后的所述第一施压机的空闲线程数大于所述目标线程数,将调整后的所述第一施压机确定为所述目标施压机;
测试单元,用于通过所述目标施压机对所述目标任务执行压力测试;
第二获取单元,用于获取所述目标施压机的每秒查询率QPS;
判断单元,用于判断所述目标施压机的QPS与预设QPS是否匹配,所述预设QPS与所述目标任务具有关联关系;
调整单元,用于当所述目标施压机的QPS与所述预设QPS不相匹配时,动态调整所述目标施压机的QPS,以使得所述目标施压机的QPS与所述预设QPS相匹配。
6.根据权利要求5所述的装置,其特征在于,所述调整单元具体用于:
获取所述目标任务的响应时长RT;
当所述目标任务的RT小于第一预设值时,则调整第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,调整后的所述休眠时间与所述目标任务的RT的和值满足第一预设条件,所述第一线程为所述目标施压机中的线程,且所述第一线程与所述目标任务具有关联关系;
当所述目标任务的RT大于所述第一预设值时,则调整所述第一线程的压测接口的休眠时间,以动态调整所述目标施压机的QPS,其中,调整后的所述休眠时间等于0。
7.根据权利要求6所述的装置,其特征在于,所述调整单元还具体用于:
当所述第一线程的压测接口的休眠时间等于0,且所述目标施压机的QPS与所述预设QPS不相匹配时,调整所述目标施压机的线程数,直至所述目标施压机的QPS与所述预设QPS相匹配。
8.一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1至4中任意一项所述的基于QPS的动态调整方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如权利要求1至4中任意一项所述的基于QPS的动态调整方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811208616.2A CN109284229B (zh) | 2018-10-17 | 2018-10-17 | 一种基于qps的动态调整方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811208616.2A CN109284229B (zh) | 2018-10-17 | 2018-10-17 | 一种基于qps的动态调整方法以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284229A CN109284229A (zh) | 2019-01-29 |
CN109284229B true CN109284229B (zh) | 2022-02-22 |
Family
ID=65177390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811208616.2A Active CN109284229B (zh) | 2018-10-17 | 2018-10-17 | 一种基于qps的动态调整方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284229B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193634B (zh) * | 2019-09-12 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 一种压力测试方法、装置和计算机可读存储介质 |
CN113485918B (zh) * | 2021-06-30 | 2024-05-07 | 中国民航信息网络股份有限公司 | 一种测试方法、装置、电子设备及存储介质 |
CN113704031B (zh) * | 2021-08-06 | 2023-10-10 | 北京罗克维尔斯科技有限公司 | 系统压力测试方法、装置、介质及设备 |
CN113656299B (zh) * | 2021-08-12 | 2023-08-22 | 北京百度网讯科技有限公司 | 极限qps的确定方法、装置、电子设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079421A (zh) * | 2013-03-27 | 2014-10-01 | 中国移动通信集团北京有限公司 | 一种域名系统防护的方法和系统 |
CN105281978A (zh) * | 2015-10-23 | 2016-01-27 | 小米科技有限责任公司 | 一种性能测试的方法、装置和系统 |
CN105894379A (zh) * | 2016-03-30 | 2016-08-24 | 上海坤士合生信息科技有限公司 | 金融产品交易策略的生成系统和生成方法 |
CN106612238A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 流量控制方法、装置和系统 |
CN106776337A (zh) * | 2016-12-29 | 2017-05-31 | 北京金山安全软件有限公司 | 一种性能分析方法、装置及电子设备 |
CN107402810A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 线程分配方法及装置 |
CN107872397A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 压测过程中的流量调度方法、调度平台和调度系统 |
CN108512710A (zh) * | 2017-02-24 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 基于测试工具的测试方法和测试工具 |
-
2018
- 2018-10-17 CN CN201811208616.2A patent/CN109284229B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079421A (zh) * | 2013-03-27 | 2014-10-01 | 中国移动通信集团北京有限公司 | 一种域名系统防护的方法和系统 |
CN106612238A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 流量控制方法、装置和系统 |
CN105281978A (zh) * | 2015-10-23 | 2016-01-27 | 小米科技有限责任公司 | 一种性能测试的方法、装置和系统 |
CN105894379A (zh) * | 2016-03-30 | 2016-08-24 | 上海坤士合生信息科技有限公司 | 金融产品交易策略的生成系统和生成方法 |
CN107402810A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 线程分配方法及装置 |
CN107872397A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 压测过程中的流量调度方法、调度平台和调度系统 |
CN106776337A (zh) * | 2016-12-29 | 2017-05-31 | 北京金山安全软件有限公司 | 一种性能分析方法、装置及电子设备 |
CN108512710A (zh) * | 2017-02-24 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 基于测试工具的测试方法和测试工具 |
Also Published As
Publication number | Publication date |
---|---|
CN109284229A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284229B (zh) | 一种基于qps的动态调整方法以及相关设备 | |
US10956424B2 (en) | Application recommending method and system, and server | |
EP3335120B1 (en) | Method and system for resource scheduling | |
CN108268372B (zh) | Mock测试处理方法、装置、存储介质和计算机设备 | |
CN110730136A (zh) | 一种实现流量控制的方法、装置、服务器及存储介质 | |
CN107426274B (zh) | 基于时序的业务应用及监控分析调度的方法和系统 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
US9807008B2 (en) | Tournament scheduling | |
JP2014032674A (ja) | 仮想マシンのリソース配置システム及びその方法 | |
US10915251B2 (en) | Dynamic parallelism | |
CN111045879B (zh) | 压力测试报告的生成方法、装置及存储介质 | |
WO2014194704A1 (en) | A grouping processing method and system | |
CN111522668A (zh) | 用于资源配置的方法和装置及计算机可读存储介质 | |
CN106407013B (zh) | 资源动态调度的方法、装置、资源调度服务器及系统 | |
CN112416888B (zh) | 用于分布式文件系统的动态负载均衡方法及系统 | |
CN105791166B (zh) | 一种负载均衡分配的方法及系统 | |
CN109144846B (zh) | 用于测试服务器的测试方法和装置 | |
CN107666401B (zh) | 一种配置信息获取方法及终端 | |
CN107370783B (zh) | 一种云计算集群资源的调度方法及装置 | |
CN111130834A (zh) | 一种网络弹性策略的处理方法及装置 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
CN107092556B (zh) | 测试方法、装置及设备 | |
CN104102541B (zh) | 签核动态调整方法及系统 | |
CN108196992B (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 |