CN113656299A - 极限qps的确定方法、装置、电子设备及可读存储介质 - Google Patents

极限qps的确定方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113656299A
CN113656299A CN202110927078.8A CN202110927078A CN113656299A CN 113656299 A CN113656299 A CN 113656299A CN 202110927078 A CN202110927078 A CN 202110927078A CN 113656299 A CN113656299 A CN 113656299A
Authority
CN
China
Prior art keywords
qps
pressure test
concurrency
interval
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.)
Granted
Application number
CN202110927078.8A
Other languages
English (en)
Other versions
CN113656299B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110927078.8A priority Critical patent/CN113656299B/zh
Publication of CN113656299A publication Critical patent/CN113656299A/zh
Application granted granted Critical
Publication of CN113656299B publication Critical patent/CN113656299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种极限QPS的确定方法、装置、电子设备及可读存储介质,涉及计算机技术领域,尤其涉及模型测试或者智能化测试技术领域。具体实现方案为:基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,第一压力测试的QPS相较于第二压力测试的QPS下降,将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免AI开发者的重复劳动,无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。

Description

极限QPS的确定方法、装置、电子设备及可读存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及模型测试或者智能化测试技术领域,具体而言,本公开涉及一种极限QPS的确定方法、装置、电子设备及可读存储介质。
背景技术
极限每秒查询率(Queries Per Second,QPS)能够体现AI模型的最优性能,是对AI模型进行压测时的一个重要指标。
传统的压力测试中,需要由AI开发者多次发起压力测试,并自行判断极限QPS,从而实现对AI模型的最优性能的判断。现有方案中,AI开发者需要进行重复劳动,并且AI开发者人工判断的极限QPS可能会不准确。
发明内容
本公开为了解决上述缺陷中的至少一项,提供了一种极限QPS的确定方法、装置、压力测试系统、电子设备及可读存储介质。
根据本公开的第一方面,提供了一种极限QPS的确定方法,该方法包括:
基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,其中,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降,第二压力测试为第一压力测试的前一次压力测试;
将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;
基于第一并发度区间发起压力测试,以确定极限QPS。
根据本公开的第二方面,提供了一种极限QPS的确定装置,该装置包括:
第一压力测试模块,用于基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降,第二压力测试为第一压力测试的前一次压力测试;
并发度区间确定模块,用于将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;
第二压力测试模块,用于基于第一并发度区间发起压力测试,以确定极限QPS。
根据本公开的第三方面,提供了一种压力测试系统,该压力测试系统包括:
任务管理模块,用于向压力测试模块依次发起基于多个预设并发度的第一压力测试任务;基于压力测试模块返回的基于第一压力测试任务所发起的各次压力测试的QPS,确定出第一压力测试;将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;向压力测试模块发起基于第一并发度区间的第二压力测试任务;根据第二压力测试任务对应的测试结果,确定极限QPS;其中,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降,第二压力测试为第一压力测试的前一次压力测试;
压力测试模块,用于根据各第一压力测试任务依次发起压力测试,并向任务管理模块返回各次压力测试的QPS;根据第二压力测试任务发起压力测试,并向任务管理模块返回第二压力测试任务对应的测试结果。
根据本公开的第四方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与上述至少一个处理器通信连接的存储器;其中,
存储器存储有可被上述至少一个处理器执行的指令,指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述极限QPS的确定方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使计算机执行上述极限QPS的确定方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述极限QPS的确定方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种极限QPS的确定方法的流程示意图;
图2是本公开实施例中并发度与QPS变化相关性的示意图;
图3本公开实施例提供的一种测试系统的结构示意图;
图4根据本公开实施例提供的一种极限QPS的确定装置的结构示意图;
图5示出了本公开实施例提供的一种压力测试系统的结构示意图;
图6是用来实现本公开实施例的极限QPS的确定方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
人工智能(Artificial Intelligence,AI)技术正处于高速发展阶段,各行各业正在积极拥抱AI技术,越来越多的企业和个人正投身AI开发,训练出了针对各类应用场景的AI算法模型。AI模型预测服务是将AI算法模型应用到实际业务的最后环节,AI开发者会将AI模型部署在公有云服务器、私有服务器、端设备等环境,通过应用程序接口(ApplicationProgramming Interface,API)调用模型服务,释放模型的价值。由于各类模型质量参差不齐,加之服务运维、测试并非AI算法工程师所长,因而迫切需要一种针对AI预测服务的评估系统,用以衡量AI预测服务的质量,敦促AI开发者不断优化模型及模型预测服务的性能。
模型性能测试中的一项重要指标为极限QPS,用以确定模型的最优性能。传统的压力测试会将各并发度下的QPS提供给AI开发者,由AI开发者自行判断极限QPS,如认为当前并发度下的QPS并非极限QPS,则需要再次发起压力测试。AI开发者需要进行重复劳动,并且AI开发者人工判断的极限QPS可能会不准确。
本申请实施例提供的极限QPS的确定方法、装置、电子设备及可读存储介质,旨在解决相关技术的如上技术问题中的至少一个。
图1示出了本公开实施例提供的一种极限QPS的确定方法的流程示意图,如图1中所示,该方法主要可以包括:
步骤S110:基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,其中,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降,第二压力测试为第一压力测试的前一次压力测试。
步骤S120:将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;
步骤S130:基于第一并发度区间发起压力测试,以确定极限QPS。
其中,并发度也称并发数,指同时对AI算法模型进行测试的测试任务的数量。极限QPS,即QPS的最高值。
在实际使用中,并发度与QPS的具有一定的变化相关性,具体而言,在并发度较低时,其对应的QPS会随着并发度的增加而增加,直至达到极限QPS,而后随着并发度的增加,对应的QPS会呈下降趋势。
作为一个示例,图2中示出了并发度与QPS变化相关性的示意图。如图2中所示,横轴为并发度,纵轴为QPS,由图2中曲线可知,QPS先随着并发度的递增而递增,在超过极限QPS后,QPS随并发度的递增而递减。
预设的递增规则可以根据实际需要配置,使得各预设并发度依次递增。作为一个示例,递增规则可以为以2的n次方的方式递增,预设并发度依次为2、4、8、16、32……2的n次方……。
依次发起压力测试并获取各次压力测试的QPS,即依次将2、4、8、16、32……2的n次方等作为压力测试的并发度,发起压力测试,同时获取各次压力测试的QPS。
本例中,可以将极限QPS所对应的并发度记为最佳并发度。
在基于预设并发度发起压力测试的过程中,如果后一次测得的QPS相较前一次测得的QPS数值增加,则可以认为当前用于测试的并发度仍未达到最佳并发度,可以继续基于下一个预设并发度发起压力测试。而当后一次测得的QPS相较前一次测得的QPS数值下降时,则可以认为当前用于测试的并发度已经超过最佳并发度,使得QPS出现了下降趋势,这时可以将QPS数值下降的压力测试指定为第一压力测试,将其前一次压力测试指定为第二压力测试,将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间指定为第一并发度区间,最佳QPS在第一并发度区间内,因此,可以基于第一并发度区间发起压力测试,以确定极限QPS。
作为一个示例,如预设并发度为2、4、8、16、32……2的n次方等,基于预设并发度发起压力测试并获取对应的QPS的过程中,如果确定出并发度的数值为32时所发起压力测试的QPS,相较于前一次压力测试(即并发度的数值为16时所发起压力测试)发生了下降,则可以停止上述基于预设并发度发起压力测试的过程,将(16,32)确定为第一并发度区间。
本公开实施例提供的方法,通过基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到QPS相较于上一次压力测试的QPS下降的第一压力测试,将第一压力测试对应的并发度以及第一压力测试的前一次压力测试对应的并发度之间的区间确定为第一并发度区间,基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
本公开的一种可选方式中,基于第一并发度区间发起压力测试,以确定极限QPS,包括:
发起第三压力测试并获取第三压力测试的QPS,第三压力测试的对应并发度为第一并发度区间的中位数;
基于第三压力测试是否满足预设的停止测试条件,确定极限QPS。
本公开实施例中,由于第一并发度区间所对应的QPS的变化趋势为先递增后递减,可以将第一并发度区间的中位数作为并发度发起第三压力测试,并根据第三压力测试的QPS来对第一并发度区间所对应的QPS的变化趋势进行判断。
在实际使用中,第三压力测试的QPS可能为极限QPS,可以预配置停止测试条件,用于判断第三压力测试的QPS是否为极限QPS。
本公开的一种可选方式中,基于第三压力测试是否满足预设的停止测试条件,确定极限QPS,包括:
若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS;
若第三压力测试不满足预设的停止测试条件,则确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间,重复执行发起第三压力测试并获取第三压力测试的QPS,若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS,若第三压力测试不满足预设的停止测试条件,则确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间的步骤,直至确定出极限QPS。
本公开实施例中,若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS,并停止测试。
若第三压力测试不满足预设的停止测试条件,则将第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间,并分别确定两个第二并发度区间对应的QPS趋势,以判断最佳并发度所在的第二并发度区间。
由于第一并发度区间所对应的QPS的变化趋势为先递增,到达极限QPS后递减,两个第二并发度区间中的一个对应的QPS趋势为先递增、到达极限QPS后递减,另一对应的QPS趋势为仅递增或者仅递减。因此可以将预设趋势条件设定为:并发度区间中各并发度的QPS趋势为QPS先递增后递减。
将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间,重复执行发起第三压力测试并获取第三压力测试的QPS,若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS,若第三压力测试不满足预设的停止测试条件,则确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间的步骤,直至第三压力测试满足停止测试条件,确定出极限QPS。
本公开的一种可选实施方式中,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
发起第四压力测试并获取第四压力测试的QPS,第四压力测试对应的并发度与第三压力测试对应的并发度相差第一预设值;
基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势。
本公开实施例中,可以发起第四压力测试,第四压力测试的并发度与第三压力测试的并发度之差为预设值,第一预设值可以为一个较小值,使得第四压力测试与第三压力测试能够准确反映出QPS的变化趋势。
作为一个示例,第一预设值可以为1,例如第三压力测试的并发度的数值为24,第四压力测试的并发度的数值为23或者25。
通过获取第四压力测试的QPS,并与第三压力测试的QPS进行比较,能够推知在两个第二并发度区间内的QPS趋势。
本公开的一种可选实施方式中,若第四压力测试对应的并发度比第三压力测试对应的并发度大第一预设值,则基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
若第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势确定为QPS先递增后递减;
若第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势确定为QPS先递增后递减。
本公开实施例中,第二预设值可以为一个较小的QPS值,可以认为在第三压力测试的QPS与第四压力测试的QPS之差小于第二预设值时,二者的QPS近似于相等。
本公开实施例中,第四压力测试对应的并发度的数值比第三压力测试对应的并发度的数值大第一预设值,例如,第一并发度区间为(16,32),第三压力测试对应的并发度为24,第四压力测试对应的并发度为25,当第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,参照图2中所示可知,并发度24右侧的QPS趋势为QPS一直减少,并发度24左侧的QPS趋势为QPS先递增后递减,因此可以将以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势为QPS先递增后递减,即将并发度区间(16,24)内的QPS趋势确定为QPS先递增后递减,其满足预设趋势条件。此时,最佳并发度在并发度区间(16,24)内。
又例如,第一并发度区间为(8,24),当第三压力测试的并发度的数值为16,第四压力测试的并发度的数值为17,当第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,参照图2中所示可知,并发度16左侧的QPS趋势为QPS一直增加,并发度16右侧的QPS趋势为QPS先递增后递减,因此可以将以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势为QPS先递增后递减,即将并发度区间(16,24)内的QPS趋势确定为QPS先递增后递减,其满足预设趋势条件。此时,最佳并发度在并发度区间(16,24)内。
本公开的一种可选实施方式中,若第四压力测试对应的并发度比第三压力测试对应的并发度小第一预设值,则基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
若第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势确定为QPS先递增后递减;
若第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势确定为QPS先递增后递减。
本公开实施例中,第四压力测试对应的并发度的数值比第三压力测试对应的并发度的数值小第一预设值,例如,第一并发度区间为(8,24),第三压力测试对应的并发度为16,第四压力测试对应的并发度为15,当第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,参照图2中所示可知,并发度16左侧的QPS趋势为QPS一直增加,并发度16右侧的QPS趋势为QPS先递增后递减,因此可以将以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势为QPS先递增后递减,即将并发度区间(16,24)内的QPS趋势确定为QPS先递增后递减,其满足预设趋势条件。此时,最佳并发度在并发度区间(16,24)内。
又例如,第一并发度区间为(16,32),第三压力测试对应的并发度为24,第四压力测试对应的并发度为23,参照图2中所示,当第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,参照图2中所示可知,并发度24右侧的QPS趋势为QPS一直减少,并发度24左侧的QPS趋势为QPS先递增后递减,因此可以将以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势为QPS先递增后递减,即将并发度区间(16,24)内的QPS趋势确定为QPS先递增后递减,其满足预设趋势条件。此时,最佳并发度在并发度区间(16,24)内。
本公开的一种可选实施方式中,停止测试条件包括以下任一项:
第三压力测试对应的并发度的值与第一并发度区间的边界值之差不大于1;
第四压力测试的QPS与第三压力测试的QPS之差不大于第二预设值,其中,第四压力测试对应的并发度与第三压力测试对应的并发度相差第一预设值。
本公开实施例中,停止测试条件也可以为用于发起第三压力测试的目标并发度的值与第一并发度区间的边界值之差不大于,1,即第一并发度区间的区间长度不大于2,例如第一并发度区间为(20,21)或者(21,22),由于并发度的数值一般为整数,因此,这时可以认为第一并发度区间已经无法继续拆分,可以停止测试,将第三压力测试的QPS确定为极限QPS。
在实际使用中,如果第一并发度区间仍可继续拆分,则可以发起第四压力测试,该第四压力测试与的并发度与第三压力测试对应的并发度相差第一预设值,第一预设值可以为一个较小值,如可以为1。停止测试条件可以为第三压力测试的QPS与第四压力测试的QPS之差不大于第二预设值,第二预设值可以设定为一个较小的值,即认为第四压力测试的QPS相较于第三压力测试的QPS变化较小,可以忽略不计,视为第三压力测试的QPS等于第四压力测试的QPS,这时可以认为第三压力测试的QPS接近极限QPS,可以将第三压力测试的QPS确定为极限QPS。
作为一示例,若第一并发度区间为(16,32),则可以将并发度24作为第三压力测试的并发度发起压力测试,此时,如果第三压力测试满足预设的停止测试条件,则24即为最佳并发度,第三压力测试的QPS为极限QPS;如果第三压力测试不满足预设的停止测试条件,则可以将第一并发度区间为(16,32)均分为(16,24)以及(24至32)两个第二并发度区间,并确定这两个第二并发度区间中满足预设趋势条件的第二并发度区间。若(16,24)为满足预设趋势条件的第二并发度区间,则可以将(16,24)作为第一并发度区间,再次执行发起第三压力测试并获取第三压力测试的QPS的步骤,即将并发度20作为第三压力测试的并发度发起压力测试,而后如果第三压力测试满足预设的停止测试条件,则20即为最佳并发度,第三压力测试的QPS为极限QPS;如果第三压力测试不满足预设的停止测试条件,则可以将第一并发度区间为(16,24)均分为(16,20)以及(20至24)两个第二并发度区间,并确定这两个第二并发度区间中满足预设趋势条件的第二并发度区间。若(16,20)为满足预设趋势条件的第二并发度区间,则可以将(16,20)作为第一并发度区间,再次执行发起第三压力测试并获取第三压力测试的QPS的步骤,即将并发度18作为第三压力测试的并发度发起压力测试,而后如果第三压力测试满足预设的停止测试条件,则18即为最佳并发度,第三压力测试的QPS为极限QPS;如果第三压力测试不满足预设的停止测试条件,则可以将第一并发度区间为(16,20)均分为(16,18)以及(18,20)两个第二并发度区间,并确定这两个第二并发度区间中满足预设趋势条件的第二并发度区间。若(16,18)为满足预设趋势条件的第二并发度区间,则可以将(16,18)作为第一并发度区间,再次执行发起第三压力测试并获取第三压力测试的QPS的步骤,即将并发度19作为第三压力测试的并发度发起压力测试,此时并发度19与第一并发度区间(16,18)的边界值之差等于1,即第三压力测试满足了预设的停止测试条件,这时18即为最佳并发度,第三压力测试的QPS为极限QPS。
在实际使用中,本公开实施例提供的测试系统可以提供3种压测模式,分别是默认模式、智能模式、自定义模式,在系统应用程序接口(Application ProgrammingInterface,API)层面供用户选择,下面详细介绍这3种压测模式:
(1)默认模式:该模式是一个便捷、快速的评估模型服务性能的模式,用户仅需传输一条压测数据,以及模型预测服务的访问地址,无需其他参数,系统即可对服务进行1-8次并发,每个并发1分钟时间的压测,生成压测报告。
(2)智能模式:对于模型预测服务压测,AI开发人员往往最为关心的是服务的极限QPS,这体现了服务的最优性能。传统压测方式会将各个维度的压测结果提供给开发者,由开发者自行判断服务最优性能,即将基于多个并发度发起压力测试所得到的QPS提供给开发者,由开发者判断服务最优性能(极限QPS)。本公开提供的智能模式,可以主动通过本公开实施例中提供的极限QPS的确定方法为AI开发者寻找AI模型预测服务的极限QPS,省去了AI开发者多次发起压测、查询压测结果等重复劳动;
(3)自定义模式:自定义模式为AI开发者提供了场景化压测的手段,当AI开发者需要对模型预测服务的性能有更加深入、精细的了解时,可使用此模式进行压测。该模式可以自定义压测的轮数、每轮压测的并发度和时间、服务超时时间、超时容忍百分比,并对模型预测服务的返回数据包的内容进行正确性判断。
本公开实施例提供的压力测试系统可以划分为4个模块:压测系统模块、压测报告存储模块、可扩展的压测数据存储模块、监控系统模块。其中,压测系统模块作为核心模块,提供压测服务整体流程调度并发压;压测信息存储模块存储了系统生成的压测报告;可扩展的压测数据存储模块用户存储用户事先准备好的压测数据;监控系统模块用于在发压过程中监控模型服务的各项性能指标,并衡量模型预测服务在基于不同维度的压测数据所进行压力测试时的资源消耗。不同维度的压测数据,可以包括并发度、服务超时时间、超时容忍百分比等压测参数,能够用于发起压力测试。作为一个示例,图3中示出本公开实施例提供的一种测试系统的结构示意图。下面结合图3详细介绍以上4个模块:
(1)压测系统模块
压测系统模块提供了核心的压测服务,主要分为以下几个子模块
a.API/SDK(即接口模块):将性能评估系统中的各项能力以RestAPI接口的形式对外提供,并包含鉴权,AI开发者调用接口发起压测,查询压测结果。接口模块可以通过API或者软件开发工具包(Software Development Kit,SDK)实现。
b.PressureService(即压力服务模块):对业务请求进行解析,将请求转换为压测任务后写入消息队列,属于压测任务的生产者,同时与压测报告存储模块交互,同步压测报告;
c.TaskQueue(消息队列模块):暂存压测任务,用于模块间解耦;
d.TaskManager(即任务管理模块):作为压测任务的消费者,从消息队列中获取到压测数据后,开始进行压测任务调度,同时与压测数据存储模块、监控系统模块和压测报告存储模块进行交互,步骤如下:
i)从Storage(存储)中拉取数据并拆分;
ii)下发压测指令给压力引擎;
iii)获取压力引擎上报的压力统计信息(QPS、耗时、成功率);
iv)去监控系统中查询各个维度压测时间段内的服务资源消耗,即预设定多个压测时间段,基于各个维度的压测数据发起压力测试,通过监控系统查询在各个压测时间段的服务资源消耗,服务资源消耗如gpu使用率、cpu使用率、以及memory(内存)使用率等;
v)将压力统计信息和服务资源消耗进行汇聚后,生成压测报告并提交到Meta DB(压测报告存储模块)中;
e.PressureEngine(即压力引擎模块):一个分布式的发压引擎,使用master-slave(主从)模型,支持单机和分布式,mster(主设备)获取到压测数据后,下发给slave(即worker,从设备),各个worker发起压测,同时将压测结果(qps、请求耗时、请求次数、请求成功率等)上报给master,master进行数据汇总后返回;
(2)Meta DB(即压测报告存储模块)
压测信息存储模块将压测过程中生成的压测数据持久化到DB(数据库)中,提供实时压测报告查询功能。
(3)Storage(即压测数据存储模块)
对于精细化的压测评估,用户往往需要使用多维度的压测数据进行压测,当数据量较大时,无法将压测数据通过API接口传输,此时需要引入第三方存储模块,如Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)、Gluster文件系统(GlusterFile System,GlusterFS)等,AI开发者事先将生成好的压测数据放入存储模块,再将存储模块的信息(存储地址,鉴权信息等)传给本测试系统,由本测试系统在压测任务开启时,去存储系统中拉取数据,拆分后进行逐条数据发压。
压测数据存储模块封装了主流的第三方存储系统交互逻辑,当前支持HDFS、GlusterFS、百度对象存储(Baidu Object Storage,BOS)、百度开放云对象存储文件系统(BCE)、Andrew文件系统(The Andrew File System,AFS),用户提供了存储模块的相关信息后,系统可自动跟进存储信息获取压测数据。同时,此模块支持实时扩展,在AItoB场景下,系统需适配私有化用户提供的某种存储系统,添加新存储系统的交互逻辑即可快速进行适配;
(4)promethus(即监控系统模块)
大部分AI模型预测服务底层依赖GPU,GPU价格高昂,因此对于AI模型预测服务,除了需要对模型服务性能指标(qps、响应时间等)进行评估,还需要了解服务在当前压力下对系统资源(cpu、gpu、memory)的消耗,以衡量服务成本;
本公开引入开源监控系统Promethus,与AI模型预测服务的运行环境打通,运行环境如k8s、k3s,百度智能云cce等),监控服务运行环境的资源消耗情况,在压测过程中,监控系统将各个维度压测时间段内的资源消耗进行汇聚,生成AI模型预测服务在各个并发维度下的资源消耗情况,并在压测报告中体现这一信息,即预设定多个压测时间段,基于多个维度的压测数据分别发起压力测试,通过监控系统查询在各个压测时间段的资源消耗,并将查询得到的资源消耗情况进行统计,而后将统计结果写入压测报告中。
基于与图1中所示的方法相同的原理,图4示出了本公开实施例提供的一种极限QPS的确定装置的结构示意图,如图4所示,该极限QPS的确定装置40可以包括:
第一压力测试模块410,用于基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,其中,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降第二压力测试为第一压力测试的前一次压力测试;
并发度区间确定模块420,用于将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;
第二压力测试模块430,用于基于第一并发度区间发起压力测试,以确定极限QPS。
本公开实施例提供的装置,通过基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到QPS相较于上一次压力测试的QPS下降的第一压力测试,将第一压力测试对应的并发度以及第一压力测试的前一次压力测试对应的并发度之间的区间确定为第一并发度区间,基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
可选地,第二压力测试模块具体用于:
发起第三压力测试并获取第三压力测试的QPS,第三压力测试的对应并发度为第一并发度区间的中位数;
基于第三压力测试是否满足预设的停止测试条件,确定极限QPS。
可选地,第二压力测试模块在基于第三压力测试是否满足预设的停止测试条件,确定极限QPS时,具体用于:
若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS;
若第三压力测试不满足预设的停止测试条件,则确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间,重复执行发起第三压力测试并获取第三压力测试的QPS,若第三压力测试满足预设的停止测试条件,则将第三压力测试的QPS确定为极限QPS,若第三压力测试不满足预设的停止测试条件,则确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将QPS趋势满足预设趋势条件的第二并发度区间作为第一并发度区间的步骤,直至确定出极限QPS。
可选地,预设趋势条件为:
第二并发度区间中各并发度的QPS趋势为QPS先递增后递减。
可选地,第二压力测试模块在确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势时,具体用于:
发起第四压力测试并获取第四压力测试的QPS,第四压力测试对应的并发度与第三压力测试对应的并发度相差第一预设值;
基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势。
可选地,若第四压力测试对应的并发度比第三压力测试对应的并发度大第一预设值,则第二压力测试模块在基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势时,具体用于:
若第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势为QPS先递增后递减;
若第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势为QPS先递增后递减。
可选地,若第四压力测试对应的并发度比第三压力测试对应的并发度小第一预设值,则第二压力测试模块在基于第四压力测试的QPS与第三压力测试的QPS,确定由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势时,具体用于:
若第三压力测试的QPS大于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为左边界的第二并发度区间的QPS趋势为QPS先递增后递减;
若第三压力测试的QPS小于第四压力测试的QPS超过第二预设值,则将由第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间中,以第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势为QPS先递增后递减。
可选地,停止测试条件包括以下任一项:
第四压力测试的QPS与第三压力测试的QPS之差不大于第二预设值;
第三压力测试对应的并发度的值与第一并发度区间的边界值之差不大于1。
第四压力测试的QPS与第三压力测试的QPS之差不大于第二预设值,其中,第四压力测试对应的并发度与第三压力测试对应的并发度相差第一预设值。
可以理解的是,本公开实施例中的极限QPS的确定装置的上述各模块具有实现图1中所示的实施例中的极限QPS的确定方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述极限QPS的确定装置的各模块的功能描述具体可以参见图1中所示实施例中的极限QPS的确定方法的对应描述,在此不再赘述。
图5示出了本公开实施例提供的一种压力测试系统的结构示意图,如图5中所示,该压力测试系统50主要可以包括:
任务管理模块510,用于向压力测试模块依次发起基于多个预设并发度的第一压力测试任务;基于压力测试模块返回的基于第一压力测试任务所发起的各次压力测试的QPS,确定出第一压力测试;将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;向压力测试模块发起基于第一并发度区间的第二压力测试任务;根据第二压力测试任务对应的测试结果,确定极限QPS;其中,多个预设并发度按照预设递增规则递增,第一压力测试的QPS相较于第二压力测试的QPS下降,第二压力测试为第一压力测试的前一次压力测试;
压力测试模块520,用于根据各第一压力测试任务依次发起压力测试,并向任务管理模块返回各次压力测试的QPS;根据第二压力测试任务发起压力测试,并向任务管理模块返回第二压力测试任务对应的测试结果。
其中,压力测试模块主要用于进行压力测试,返回各次压力测试的QPS。任务管理模块主要用于发起压力测试任务以及确定极限QPS。具体而言,通过任务管理模块向压力测试模块依次发起基于多个预设并发度的第一压力测试任务,多个预设并发度按照预设递增规则递增,如递增规则可以为以2的n次方的方式递增。压力测试模块根据各第一压力测试任务依次发起压力测试,并向任务管理模块返回各次压力测试的QPS。任务管理模块基于各次压力测试的QPS确定出第一压力测试,第一压力测试的QPS相较于其前一次压力测试的QPS下降,可以将第一压力测试的前一次压力测试记做第二压力测试。任务管理模块将第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间,而后向压力测试模块发起基于第一并发度区间的第二压力测试任务。压力测试模块根据第二压力测试任务发起压力测试,获取第二压力测试任务对应的测试结果,并将第二压力测试任务对应的测试结果返回给任务管理模块。任务管理模块根据第二压力测试任务对应的测试结果确定极限QPS。
本公开实施例提供的测试系统,能够通过任务管理模块与压力测试模块配合确定极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
本公开实施例提供的测试系统中,任务管理模块在根据第二压力测试任务对应的测试结果,确定极限QPS时所实现的具体功能,可以参考本公开实施例提供的极限QPS的确定方法中基于第一并发度区间发起压力测试,以确定极限QPS这一步骤所对应的具体描述,在此不再赘述。
本公开的一种可选实施方式中,上述测试系统还包括以下至少一项:
压力报告存储模块,用于生成压力报告,并将压力报告存储;
压测数据存储模块,用于存储压测数据,压测数据用于发起压力测试;
资源消耗监测模块,用于监控压力测试过程中的资源消耗信息;
任务队列模块,用于将压力测试任务添加至任务队列;
接口模块,用于接收用户的压力测试请求以及接收用户的测试结果查询请求。
本公开实施例中,压力报告模块可以根据压力测试得到的压力测试结果(如极限QPS)生成压力报告,并将生成的压力报告进行存储。压力测试结果可以被持久化到数据库(data base,DB)中。
为了进行精细化的压测评估,在实际使用中可能会基于多种维度的压测数据发起压力测试,使得压测数据的数据量较大,这时可以引入压测数据存储模块,用于存储压测数据。压测数据存储模块可以为第三方存储模块,如Hadoop分布式文件系统(HadoopDistributed File System,HDFS)、Gluster文件系统(Gluster File System,GlusterFS)等。测试者可以预先将压测数据放入压测数据存储模块,再将存储的相关信息(如存储地址、鉴权信息等)返回,由测试系统在压测任务开启时,去压测数据存储模块中获取压测数据。
大部分AI模型预测服务底层依赖GPU,GPU服务成本较高,对于AI模型预测服务,除了需要对模型服务性能指标(如qps、响应时间等)进行评估,还需要了解压力测试过程中对系统资源(如cpu、gpu、memory等)的消耗,以衡量服务成本。可以引入资源消耗监测模块,用于监控压力测试过程中的资源消耗信息。资源消耗信息可以被写入压测报告中。
本公开实施例中,可以维护压测任务的任务队列,任务队列被暂存于任务队列模块。任务队列模块可以在接收到压测任务时,将压测任务写入任务队里,在需要执行压测任务时,将压测任务从任务队列中取出。
本公开实施例中,AI开发者可以通过接口模块实现与压测系统的交互,具体而言,可以通过接口模块接收AI开发者的压力测试请求以及接收AI开发者的测试结果查询请求。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如本公开实施例提供的极限QPS的确定方法。
该电子设备与相关技术相比,通过基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到QPS相较于上一次压力测试的QPS下降的第一压力测试,将第一压力测试对应的并发度以及第一压力测试的前一次压力测试对应的并发度之间的区间确定为第一并发度区间,基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
该可读存储介质为存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如本公开实施例提供的极限QPS的确定方法。
该可读存储介质与相关技术相比,通过基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到QPS相较于上一次压力测试的QPS下降的第一压力测试,将第一压力测试对应的并发度以及第一压力测试的前一次压力测试对应的并发度之间的区间确定为第一并发度区间,基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
该计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本公开实施例提供的极限QPS的确定方法。
该计算机程序产品与相关技术相比,通过基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到QPS相较于上一次压力测试的QPS下降的第一压力测试,将第一压力测试对应的并发度以及第一压力测试的前一次压力测试对应的并发度之间的区间确定为第一并发度区间,基于第一并发度区间发起压力测试,以确定极限QPS。基于本方案,能够确定出最佳并发度的所在的数值范围,并基于最佳并发度的所在的数值范围确定出极限QPS,实现了自动确定极限QPS,避免了AI开发者的重复劳动,并且无需AI开发者人工判断极限QPS,保证得到的极限QPS的准确性。
图6示出了可以用来实施本公开的实施例的示例电子设备2000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备2000包括计算单元2010,其可以根据存储在只读存储器(ROM)2020中的计算机程序或者从存储单元2080加载到随机访问存储器(RAM)2030中的计算机程序,来执行各种适当的动作和处理。在RAM 2030中,还可存储设备2000操作所需的各种程序和数据。计算单元2010、ROM 2020以及RAM 2030通过总线2040彼此相连。输入/输出(I/O)接口2050也连接至总线2040。
设备2000中的多个部件连接至I/O接口2050,包括:输入单元2060,例如键盘、鼠标等;输出单元2070,例如各种类型的显示器、扬声器等;存储单元2080,例如磁盘、光盘等;以及通信单元2090,例如网卡、调制解调器、无线通信收发机等。通信单元2090允许设备2000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2010可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2010的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2010执行本公开实施例中所提供的极限QPS的确定方法。例如,在一些实施例中,执行本公开实施例中所提供的极限QPS的确定方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2080。在一些实施例中,计算机程序的部分或者全部可以经由ROM 2020和/或通信单元2090而被载入和/或安装到设备2000上。当计算机程序加载到RAM 2030并由计算单元2010执行时,可以执行本公开实施例中所提供的极限QPS的确定方法的一个或多个步骤。备选地,在其他实施例中,计算单元2010可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例中所提供的极限QPS的确定方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (14)

1.一种极限QPS的确定方法,包括:
基于多个预设并发度,依次发起压力测试并获取各次压力测试的每秒查询率QPS,直至得到第一压力测试的QPS,其中,所述多个预设并发度按照预设递增规则递增,所述第一压力测试的QPS相较于第二压力测试的QPS下降,所述第二压力测试为所述第一压力测试的前一次压力测试;
将所述第一压力测试对应的并发度以及所述第二压力测试对应的并发度之间的区间确定为第一并发度区间;
基于所述第一并发度区间发起压力测试,以确定极限QPS。
2.根据权利要求1所述的方法,其中,所述基于所述第一并发度区间发起压力测试,以确定极限QPS,包括:
发起第三压力测试并获取所述第三压力测试的QPS,所述第三压力测试的对应并发度为所述第一并发度区间的中位数;
基于所述第三压力测试是否满足预设的停止测试条件,确定极限QPS。
3.根据权利要求2所述的方法,其中,所述基于所述第三压力测试是否满足预设的停止测试条件,确定极限QPS,包括:
若所述第三压力测试满足预设的停止测试条件,则将所述第三压力测试的QPS确定为极限QPS;
若所述第三压力测试不满足预设的停止测试条件,则确定由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将所述QPS趋势满足预设趋势条件的第二并发度区间作为所述第一并发度区间,重复执行所述发起第三压力测试并获取所述第三压力测试的QPS,若所述第三压力测试满足预设的停止测试条件,则将所述第三压力测试的QPS确定为极限QPS,若所述第三压力测试不满足预设的停止测试条件,则确定由所述第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,将所述QPS趋势满足预设趋势条件的第二并发度区间作为所述第一并发度区间的步骤,直至确定出极限QPS。
4.根据权利要求3所述的方法,其中,所述预设趋势条件为:
所述第二并发度区间中各并发度的QPS趋势为QPS先递增后递减。
5.根据权利要求3或4所述的方法,其中,所述确定由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
发起第四压力测试并获取所述第四压力测试的QPS,所述第四压力测试对应的并发度与所述第三压力测试对应的并发度相差第一预设值;
基于所述第四压力测试的QPS与所述第三压力测试的QPS,确定由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势。
6.根据权利要求5所述的方法,其中,若所述第四压力测试对应的并发度比所述第三压力测试对应的并发度大第一预设值,则基于所述第四压力测试的QPS与所述第三压力测试的QPS,确定由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
若所述第三压力测试的QPS大于所述第四压力测试的QPS超过第二预设值,则将由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间中,以所述第一并发度区间的中位数为右边界的所述第二并发度区间的QPS趋势确定为QPS先递增后递减;
若所述第三压力测试的QPS小于所述第四压力测试的QPS超过第二预设值,则将由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间中,以所述第一并发度区间的中位数为左边界的所述第二并发度区间的QPS趋势确定为QPS先递增后递减。
7.根据权利要求5或6所述的方法,其中,若所述第四压力测试对应的并发度比所述第三压力测试对应的并发度小第一预设值,则基于所述第四压力测试的QPS与所述第三压力测试的QPS,确定由所述第一并发度区间以第一并发度区间的中位数为界均分成的两个第二并发度区间对应的QPS趋势,包括:
若所述第三压力测试的QPS大于所述第四压力测试的QPS超过第二预设值,则将由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间中,以所述第一并发度区间的中位数为左边界的所述第二并发度区间的QPS趋势确定为QPS先递增后递减;
若所述第三压力测试的QPS小于所述第四压力测试的QPS超过第二预设值,则将由所述第一并发度区间以所述第一并发度区间的中位数为界均分成的两个第二并发度区间中,以所述第一并发度区间的中位数为右边界的第二并发度区间的QPS趋势确定为QPS先递增后递减。
8.根据权利要求2-7中任一项所述的方法,其中,所述停止测试条件包括以下任一项:
所述第三压力测试对应的并发度的值与所述第一并发度区间的边界值之差不大于1;
所述第四压力测试的QPS与第三压力测试的QPS之差不大于第二预设值,其中,所述第四压力测试对应的并发度与所述第三压力测试对应的并发度相差第一预设值。
9.一种极限QPS的确定装置,包括:
第一压力测试模块,用于基于多个预设并发度,依次发起压力测试并获取各次压力测试的QPS,直至得到第一压力测试的QPS,其中,所述多个预设并发度按照预设递增规则递增,所述第一压力测试的QPS相较于第二压力测试的QPS下降,所述第二压力测试为所述第一压力测试的前一次压力测试;
并发度区间确定模块,用于将所述第一压力测试对应的并发度以及所述第二压力测试对应的并发度之间的区间确定为第一并发度区间;
第二压力测试模块,用于基于所述第一并发度区间发起压力测试,以确定极限QPS。
10.一种压力测试系统,包括:
任务管理模块,用于向压力测试模块依次发起基于多个预设并发度的第一压力测试任务;基于所述压力测试模块返回的基于所述第一压力测试任务所发起的各次压力测试的QPS,确定出第一压力测试;将所述第一压力测试对应的并发度以及第二压力测试对应的并发度之间的区间确定为第一并发度区间;向压力测试模块发起基于所述第一并发度区间的第二压力测试任务;根据第二压力测试任务对应的测试结果,确定极限QPS;其中,所述多个预设并发度按照预设递增规则递增,所述第一压力测试的QPS相较于第二压力测试的QPS下降,所述第二压力测试为所述第一压力测试的前一次压力测试;
压力测试模块,用于根据各所述第一压力测试任务依次发起压力测试,并向所述任务管理模块返回各次压力测试的QPS;根据所述第二压力测试任务发起压力测试,并向所述任务管理模块返回所述第二压力测试任务对应的测试结果。
11.根据权利要求10所述的系统,还包括以下至少一项:
压力报告存储模块,用于生成压力报告,并将所述压力报告存储;
压测数据存储模块,用于存储压测数据,所述压测数据用于发起压力测试;
资源消耗监测模块,用于监控压力测试过程中的资源消耗信息;
任务队列模块,用于将压力测试任务添加至任务队列;
接口模块,用于接收用户的压力测试请求以及接收用户的测试结果查询请求。
12.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
13.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
CN202110927078.8A 2021-08-12 2021-08-12 极限qps的确定方法、装置、电子设备及可读存储介质 Active CN113656299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110927078.8A CN113656299B (zh) 2021-08-12 2021-08-12 极限qps的确定方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110927078.8A CN113656299B (zh) 2021-08-12 2021-08-12 极限qps的确定方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113656299A true CN113656299A (zh) 2021-11-16
CN113656299B CN113656299B (zh) 2023-08-22

Family

ID=78479642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110927078.8A Active CN113656299B (zh) 2021-08-12 2021-08-12 极限qps的确定方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113656299B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364344A (zh) * 2008-06-27 2009-02-11 北京工业大学 基于压力测试的路网极限容量确定方法
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
WO2017084505A1 (zh) * 2015-11-16 2017-05-26 阿里巴巴集团控股有限公司 一种获得应用集群容量的方法和装置
WO2017096835A1 (zh) * 2015-12-09 2017-06-15 乐视控股(北京)有限公司 服务器群组的服务升级方法及系统
CN109284229A (zh) * 2018-10-17 2019-01-29 武汉斗鱼网络科技有限公司 一种基于qps的动态调整方法以及相关设备
CN109815004A (zh) * 2017-11-21 2019-05-28 腾讯科技(深圳)有限公司 请求负载控制方法、装置、存储介质和计算机设备
CN111694748A (zh) * 2020-06-18 2020-09-22 行吟信息科技(武汉)有限公司 压力测试方法及装置
CN112685271A (zh) * 2020-12-23 2021-04-20 北京字节跳动网络技术有限公司 压测数据处理方法、装置、电子设备及可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364344A (zh) * 2008-06-27 2009-02-11 北京工业大学 基于压力测试的路网极限容量确定方法
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
WO2017084505A1 (zh) * 2015-11-16 2017-05-26 阿里巴巴集团控股有限公司 一种获得应用集群容量的方法和装置
WO2017096835A1 (zh) * 2015-12-09 2017-06-15 乐视控股(北京)有限公司 服务器群组的服务升级方法及系统
CN109815004A (zh) * 2017-11-21 2019-05-28 腾讯科技(深圳)有限公司 请求负载控制方法、装置、存储介质和计算机设备
CN109284229A (zh) * 2018-10-17 2019-01-29 武汉斗鱼网络科技有限公司 一种基于qps的动态调整方法以及相关设备
CN111694748A (zh) * 2020-06-18 2020-09-22 行吟信息科技(武汉)有限公司 压力测试方法及装置
CN112685271A (zh) * 2020-12-23 2021-04-20 北京字节跳动网络技术有限公司 压测数据处理方法、装置、电子设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
尹书成;黄刘生;朱振宇;徐宏力;: "分布式协调服务的室内定位中间件研究", 小型微型计算机系统, no. 04 *
邱亮;: "BIND可靠性设计与压力测试技术", 中国科技信息, no. 08 *

Also Published As

Publication number Publication date
CN113656299B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
CN113037594B (zh) 基于云服务的压力测试方法和装置
JP5617914B2 (ja) スループット維持支援システム、装置、方法、及びプログラム
CN110032576B (zh) 一种业务处理方法以及装置
CN111045911A (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN114500339B (zh) 一种节点带宽监测方法、装置、电子设备及存储介质
CN114564374A (zh) 算子性能评估方法、装置、电子设备及存储介质
CN112506619A (zh) 作业处理方法、装置、电子设备、存储介质和程序产品
CN114861039A (zh) 一种搜索引擎的参数配置方法、装置、设备及存储介质
CN114968828B (zh) 用于优化算法的性能测试方法、平台、设备及存储介质
CN113656299A (zh) 极限qps的确定方法、装置、电子设备及可读存储介质
CN114338472B (zh) 地图服务器的容量测试方法、装置、设备、介质及产品
CN115576827A (zh) 业务流程软件的性能测试方法、装置、设备及存储介质
CN114415691A (zh) 一种机器人调度方法、调度平台及系统
CN115017047A (zh) 基于b/s架构的测试方法、系统、设备及介质
CN113411390B (zh) 内容分发网络的调度方法、装置及电子设备
CN112527537B (zh) 在线服务系统的质量监控方法、装置、设备和介质
CN113225228B (zh) 数据处理方法及装置
CN114598705A (zh) 消息负载均衡方法、装置、设备和介质
CN114461502A (zh) 模型的监控方法和装置
CN115757047A (zh) 一种云平台状态同步方法、多云管理平台及存储介质
CN117539719A (zh) 应用运行监测方法、装置、设备及介质
CN117312150A (zh) 一种压力测试的流量调度方法、平台和系统
CN115437956A (zh) 一种测试策略调整方法、装置、电子设备和存储介质
CN117406964A (zh) 数据架构模型设计方法、装置、电子设备和存储介质
CN117009000A (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