CN116932346A - 服务器的压测方法、装置、设备和存储介质 - Google Patents

服务器的压测方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116932346A
CN116932346A CN202210383951.6A CN202210383951A CN116932346A CN 116932346 A CN116932346 A CN 116932346A CN 202210383951 A CN202210383951 A CN 202210383951A CN 116932346 A CN116932346 A CN 116932346A
Authority
CN
China
Prior art keywords
pressure measurement
target
historical
preset
server
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.)
Pending
Application number
CN202210383951.6A
Other languages
English (en)
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.)
SF Technology Co Ltd
Original Assignee
SF 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 SF Technology Co Ltd filed Critical SF Technology Co Ltd
Priority to CN202210383951.6A priority Critical patent/CN116932346A/zh
Publication of CN116932346A publication Critical patent/CN116932346A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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

本发明公开了一种服务器的压测方法、装置、设备和存储介质,其方法包括获取压测指标信息和压测轮数,根据压测指标信息确定候选压测数据量;根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;根据目标压测数据量对待测服务器进行压测;根据压测指标信息确定候选压测数据量,并根据记录的历史压测数据量和候选压测数据量确定压测数据量,能够最大化贴近实际需要的数据量,避免了数据不足引起缓存导致压测结果不准确,也避免了压测数据过多造成造数资源浪费。

Description

服务器的压测方法、装置、设备和存储介质
技术领域
本发明涉及互联网技术领域,具体涉及一种服务器的压测方法、装置、设备和存储介质。
背景技术
随着互联网时代的快速发展,海量的用户对系统的高并发性以及响应时间的要求越来越高,因此,对服务器的性能测试变得尤为重要。
服务器的性能测试是为了考察当前软硬件环境能承受的最大负荷,通过性能测试能够找出当前系统的瓶颈。常见的性能测试方案是压力测试,通过外部压测机对被压测服务发起请求,通过观测服务端的CPU、内存、响应时间等评估系统功能极限和性能隐患。
在现有压测技术的场景下,客户端需要模拟生产环境,针对单个场景或者混合场景,对中台接口发起压测请求,在压测执行完成后需要收集服务端的接口性能指标,再根据压测结果调整压测参数执行下一轮压测。上述压测过程虽然能正常完成服务端性能指标收集,但由于压测数据量难以准确获知,需要设置多次测试确定压测数据量,这无疑会浪费大量的时间成本以及人力成本,并且存在测试数据的数据量设置不合理的问题。
发明内容
本发明实施例提供一种服务器的压测方法、装置、设备和存储介质,以避免测试数据的数据量设置不合理的问题。
一方面,本发明实施例提供一种服务器的压测方法,所述方法包括:
获取待测服务器的压测指标信息和当前压测的轮数;
根据所述压测指标信息和所述当前压测的轮数确定候选压测数据量;
根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量;
根据所述目标压测数据量,构造压测数据,对待测服务器进行压测。
在本发明一些实施例中,所述根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量包括:
将所述候选压测数据量与记录的每轮历史压测对应的历史压测数据量进行比较,得到比较结果;
根据所述比较结果,从各所述历史压测数据量以及所述候选压测数据量中确定得到目标压测数据量。
在本发明一些实施例中,所述根据所述压测指标信息和所述当前压测的轮数确定候选压测数据量包括:
若所述当前压测的轮数大于或等于预设轮数阈值,则获取前一轮压测得到的历史每秒查询率和历史压测时间,根据所述历史每秒查询率和所述历史压测时间,确定得到历史压测数据量,根据所述预设每秒查询率和预设压测时间、以及所述历史压测数据量确定得到候选压测数据量;
若所述当前压测的轮数小于预设轮数阈值,则根据所述压测指标信息中的预设每秒查询率和预设压测时间确定候选压测数据量。
在本发明一些实施例中,所述根据所述目标压测数据量,构造压测数据,对待测服务器进行压测包括:
根据预设目标轮数对样本集进行等分,得到多个样本子集;所述多个样本子集中每个样本子集对应有一个压测轮数,所述多个样本子集的数量与所述预设目标轮数相同;
根据所述当前压测的轮数、所述多个样本子集确定得到目标样本子集;
根据所述目标压测数据量和所述目标样本子集构造压测数据,得到压测样本集;
根据所述压测指标信息、所述压测样本集和所述当前压测的轮数对待测服务器进行压测。
在本发明一些实施例中,所述根据所述当前压测的轮数、所述多个样本子集确定得到目标样本子集包括:
根据所述当前压测的轮数,从所述多个样本子集确定得到所述当前压测的轮数对应的初始目标样本子集;
若所述当前压测的轮数大于或等于预设轮数阈值,则获取所述当前压测的轮数之前的每轮历史压测对应的历史目标样本子集;
根据第一预设比例从各所述历史目标样本子集中提取第一样本数据,根据第二预设比例从所述初始目标样本子集中提取第二样本数据;
组合所述第一样本数据和所述第二样本数据得到目标样本子集。
在本发明一些实施例中,所述根据所述压测指标信息、所述压测样本集和所述当前压测的轮数对待测服务器进行压测包括:
若所述当前压测的轮数大于或等于预设轮数阈值,则获取所述当前压测的前一轮压测得到的历史并发数和历史压测时间,根据所述历史并发数和所述历史压测时间历史压测值设置压测脚本;
若所述当前压测的轮数小于预设轮数阈值,则根据所述压测指标信息中的预设并发数、预设平均响应和预设压测时间设置压测脚本;
执行所述压测脚本,根据所述压测样本集对待测服务器进行压测,得到压测结果。
在本发明一些实施例中,所述执行所述压测脚本,根据所述压测样本集对待测服务器进行压测,得到压测结果包括:
获取服务器的系统时间,根据所述系统时间确定是否满足预设压测启动时间;
若所述系统时间满足所述预设压测启动时间,则执行所述压测脚本,根据所述压测样本集对待测服务器进行压测;
在所述当前系统时间满足预设压测停止时间,则所述服务器停止压测,得到压测结果。
在本发明一些实施例中,所述根据所述目标压测数据量和所述目标样本子集构造压测数据,得到压测样本集包括:
若所述目标样本子集的数据量大于所述目标压测数据量,则从所述目标样本子集中随机选取与所述目标压测数据量相同数据量的目标样本数据,将选取的所述目标样本数据设置为压测样本集;
若所述目标样本子集的数据量小于或等于所述目标压测数据量,则通过拆词、重构对所述目标样本子集的数据量进行扩充,从扩充后的目标样本子集中随机选取与所述目标压测数据量相同数据量的目标样本数据,将选取的所述目标样本数据设置为压测样本集。
另一方面,本发明实施例提供一种服务器的压测装置,所述服务器的压测装置包括:
数据获取模块,用于获取待测服务器的压测指标信息和当前压测的轮数;
数据量计算模块,用于根据所述压测指标信息和所述压测轮数确定候选压测数据量;
数据量确定模块,用于根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量;
压测模块,用于根据所述目标压测数据量,构造压测数据,对待测服务器进行压测。
另一方面,本发明实施例提供一种服务器的压测设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行所述的服务器的压测方法中的操作。
另一方面,本发明实施例提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行所述的服务器的压测方法中的步骤。
本发明实施例获取压测指标信息和压测轮数,根据压测指标信息确定候选压测数据量;根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;根据目标压测数据量构造压测数据,根据压测数据对待测服务器进行压测;根据压测指标信息确定候选压测数据量,并根据记录的历史压测数据量和候选压测数据量确定压测数据量,能够最大化贴近实际需要的数据量,避免了数据不足引起缓存导致压测结果不准确,也避免了压测数据过多造成造数资源浪费。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的服务器的压测方法的应用场景示意;
图2是本发明实施例提供的服务器的压测方法的一个实施例流程示意图;
图3是本发明实施例提供的压测指标变化趋势示意图;
图4是本发明实施例提供的通过滑窗获取样本数据的一个示意;
图5是本发明实施例提供的服务器的压测装置的一个实施例结构示意图;
图6是本发明实施例提供的服务器的压测设备的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种服务器的压测方法、装置、设备和存储介质。该方法用于检测服务器能够承受的峰值并发数、最大CPU使用率、最大内存使用率、最大每秒查询率和响应时间,其中,峰值并发数包括同一时刻与服务器进行交互的在线用户数量,每秒查询率指的是每秒请求响应数量;具体地,该方法包括:获取压测指标信息和压测轮数,根据所述压测指标信息确定候选压测数据量;根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;根据目标压测数据量对待测服务器进行压测;根据压测指标信息确定候选压测数据量,并根据记录的历史压测数据量和候选压测数据量确定压测数据量,能够最大化贴近实际需要的数据量,避免了数据不足引起缓存导致压测结果不准确,也避免了压测数据过多造成造数资源浪费。
图1示出了根据本发明实施例提供的服务器的压测方法的应用场景,图1所示仅为可以应用本发明实施例的应用场景的示例,以帮助本领域技术人员理解本发明的技术内容,但不意味着本发明实施例不可以应用其他设备、系统、环境或场景。
如图1所示,根据本实施例提供的应用场景包括终端设备102、103和104、网络105以及服务器101。
其中,网络105以在终端设备102、103和104和服务器101之间提供通信链路的介质。网络105可以是因特网,也可以是任何网络,包括但不限于广域网、城域网、区域网、第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long TermEvolution LTE)、全球互通微波访问(Worldwide Interoperability for MicrowaveAccess WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite TCP/IP)、用户数据报协议(User Datagram Protocol UDP的计算机网络通信等。
用户、测试人员可以使用终端设备102、103和104通过网络105与服务器101交互,以对服务器101进行压力测试等。终端设备102、103和104上可以安装有应用程序,以实现对服务器101的压力测试,以及获取服务器101的系统资源占有率、内存占有率等。可以理解的是,在对服务器101进行压力测试的过程中,可以通过一个或多个终端设合并同时对服务器101施压,该一个或多个终端设备中的任一或其他终端设备可以对该一个或多个终端设备实施压测检测到的结果进行汇总,以对该服务器101的压力测试过程仅调试,具体例如可以为确定目标压测数据量,以寻求得到该服务器101的最佳性能。
终端设备102、103和104可以是显示功能的各种电子设备,以向用户、测试人员展示服务器101的压力测试结果,包括但不限于计算机、PC端、便携式计算机、平板电脑、智能手机等。
服务器101可以是提供各种服务的服务器,例如对用户、测试人员利用终端设备102、103和104所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的请求数据进行分析处理,并将处理结果返回至终端设备102、103和104。
需要说明的是,本发明实施例所提供的服务器的压测方法一般可以有终端设备102、103和104执行。相应地,本发明实施例所提供的服务器的压测装置一般可以设置于终端设备102、103和104中。本发明实施例提供的服务器的压测方法可以由不同终端设备102、103和104且能够与服务器101通信的服务器或服务器器集群执行。相应地,本发明实施例提供的服务器的压测装置还可以设置于不同于终端设备102、103和104且能够与服务器101通信的服务器或服务器集群中。
应该理解,图1示出的终端设备、网络和服务器的数目仅仅是示意性的,根据实际应用场景,可以具有任意数目的终端设备、网络和服务器。
如图2所示,图2是本发明实施例提供的服务器的压测方法的一个实施例流程示意图,所示的服务器的压测方法包括步骤201~204:
201,获取待测服务器的压测指标信息和当前压测的轮数。
压测指标信息包括预设压测指标和预设压测时间,即预先设置的压测指标和压测时间。在本发明一些实施例中,压测指标指的是服务器的性能指标,包括但不限于吞吐量、并发数、每秒查询率、平均响应时间、95%的请求的响应时间、错误率、CPU使用率和内存使用率。预设压测时间指的是执行一轮压测时服务器的运行时间。
其中,并发数指服务器可以同时承载的正常使用服务器的系统功能的客户端的数量;吞吐量表征服务器的在单位时间内处理请求的数量;每秒查询率指的是服务器每秒能够响应的查询次数,表征服务器性能最大吞吐能力;平均响应时间用于表征服务器对请求的响应时间;95%的请求的响应时间指的是各请求的响应耗时按照从小大的顺序排序,顺序处于95%位置的值,用于表征服务器的响应时间的分布情况,例如,100个请求按照响应时间从小到大排列,位置为95的值为200ms,即服务器对95%的请求的响应耗时在200ms之内,只有5%的请求的响应耗时大于200ms;错误率指的是服务器允许的错误最大值;CPU使用率表征服务器负载的CPU使用率;内存使用率表征服务器负载的内存使用率。
在本发明一些实施例中,可以根据服务器的性能设置预设压测指标,示例性,可以根据服务器的运行性能设置预设吞吐量和预设并发数;可以将根据服务器中各个业务系统提供每秒查询率做累加,得到预设每秒查询率;获取服务器中各个业务系统最小的平均响应时间作为预设平均响应时间;获取业务系统要求的最小的P95值作为预设95%的请求的响应时间;可以获取各个业务系统允许的error的最小值作为预设错误率;可以根据服务器的运行性能设置预设CPU使用率和预设内存使用率,例如将预设CPU使用率设置为75%,将预设内存使用率设置为80%;将预设吞吐量、预设并发数、预设每秒查询率、预设平均响应时间、预设95%的请求的响应时间、预设错误率、预设CPU使用率和预设内存使用率设置为预设压测指标;设置服务器的预设压测时间,将预设压测时间和预设压测指标设置为压测指标信息。
当前压测的轮数用于表征已经对服务器进行压测的次数,例如在当前压测的轮数为1时,表征当前压测是对服务器进行的第一轮压测,在当前压测的轮数为5时,表征当前压测是对服务器进行的第五轮压测。
在本发明一些实施例中,在服务器压测中,为了得到服务器的系统功能极限和性能隐患,需要对待测服务器进行多轮压力测试,并在前一轮压力测试的压测结果基础上进行当前轮的压测,而在服务器进行首轮压测时,为了减少服务器的压力测试轮数,可以根据压测指标信息进行压测,在得到首轮压测的压测结果之后,根据首轮压测的压测结果进行第二轮压测,以此进行多轮压测,找到服务器的系统功能极限和存在的性能隐患。其中系统功能极限包括但不限于吞吐量、并发数、每秒查询率,性能隐患包括但不限于平均响应时间、95%的请求的响应时间、错误率、CPU使用率和内存使用率。
202,根据压测指标信息和当前压测的轮数确定候选压测数据量。
候选压测数据量可以是终端、客户端在访问服务器时,服务器接收到终端、客户端的请求数据的候选数据量,例如访问服务器的终端、客户端的数量,服务器接收到的终端、客户端请求响应的数量,终端、客户端向服务器请求的数据量。在当前压测是首轮压测时,候选压测数据量是通过预设压测指标确定得到,在当前压测不是首轮压测时,候选压测数据量通过当前压测之前的历史压测的历史压测结果确定得到。
在本发明一些实施例中,可以根据当前压测的轮数确定当前压测是否为首轮压测;如果当前压测是首轮压测,则根据压测指标信息中的预设压测指标确定候选压测数据量;如果当前压测不是首轮压测,则获取当前压测的前一轮历史压测的历史压测结果,根据前一轮历史压测的历史压测结果中的历史压测指标确定候选压测数据量。其中,首轮压测指的当前压测是对服务器进行的第一轮压测。其中,根据压测指标信息中的预设压测指标确定候选压测数据量存在多种方式,示例性的包括:
(1)可以根据预设压测指标中的预设吞吐量确定候选压测数据量。
(2)可以根据预设压测指标中的预设每秒查询率确定候选压测数据量,示例性的可以根据预设每秒查询率和预设压测时间计算得到候选压测数据量,例如计算预设每秒查询率和预设压测时间之间的乘积,将乘积设置为候选压测数据量。
需要说明的是,上述根据预设压测指标确定候选压测数据量的方式仅为示例性说明,不构成对本发明实施例提供的服务器的压测方法的限定。
与根据压测指标信息中的预设压测指标确定候选压测数据量方式相似,可以获取当前压测的前一轮历史压测的历史压测结果,根据该历史压测结果中的历史压测指标确定候选压测数据量也存在多种方式,例如可以根据历史压测指标中的历史吞吐量确定候选压测数据量,还可以根据历史压测指标中的历史每秒查询率确定候选压测数据量,此处不再赘述。
在本发明一些实施例中,还可以不判断当前压测是否为首轮压测,通过查询预设的压测数据量关系数据,获取压测指标信息对应的预设目标轮数以及每一轮的预设压测数据量,根据当前压测的轮数与压测指标信息对应的每一轮的预设压测数据量进行匹配,得到候选压测数据量。其中,预设的压测数据量关系数据存储有多组压测数据,每一组压测数据对应有一组压测指标信息,并且每一组压测数据包括预设目标轮数以及每一轮的预设压测数据量。预设目标轮数指的是服务器需要执行压测的轮数。在本发明一些实施例中,预设的压测数据量关系数据可以是根据记录不同压测指标信息的服务器在压测过程中压测结果建立的。
203,根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量。
目标压测数据量指的是当前压测时终端、客户端输入服务器的请求数据的实际数据量。在本发明一些实施例中,目标压测数据量与候选压测数据量相同;在本发明一些实施例中,目标压测数据量大于候选压测数据量。记录的历史压测数据量指的是当前压测之前的每一轮历史压测时输入服务器的请求数据的数量。
在本发明一些实施例中,为了进一步减少服务器压测的轮数,减少服务器的压测耗时,可以设置输入的服务器的请求数据的数据量总是为最大数据量。其中最大数据量指的是当前压测的输入目标压测数据量大于或等于记录的历史压测数据量。
在本发明一些实施例中,为了避免盲目造数造成测试数据不足或者测试数据过多浪费造数和数据资源的问题,可以获取记录的历史压测数据量的统计特征,根据历史压测数据量的统计特征和候选压测数据量确定得到目标压测数据量。其中,记录的历史压测数据量的统计特征包括但不限于记录的历史压测数据量的最大值、众数、均值。
在本发明一些实施例中,根据统计特征和候选压测数据量确定得到目标压测数据量可以是:在当前压测不是首轮压测时,获取当前压测之前的历史压测记录的历史压测数据量,将记录的历史压测数据量的最大值与候选压测数据量进行比较;如果记录的历史压测数据量的最大值小于候选压测数据量,则将候选压测数据量设置为目标压测数据量;如果记录的历史压测数据量的最大值大于或等于候选压测数据量,则根据记录的历史压测数据量的最大值、均值等一个或多个统计特征确定得到目标压测数据量,例如可以计算记录的历史压测数据量的最大值与候选压测数据量之间差值,将差值与记录的历史压测数据量均值的和设置为目标压测数据量,可以将记录的历史压测数据量的最大值设置为目标压测数据量,还可以计算记录的历史压测数据量的最大值与候选压测数据量之间差值,计算记录的历史压测数据量的最大值与候选压测数据量的平均值,将差值与平均值的和设置为目标压测数据量。在本发明一些实施例中,考虑到对于首轮压测和第二轮压测时,不存在历史压测数据量或历史压测数据量较少,历史压测数据量的统计特征不具有参考性,为了确保每一轮压测时输入服务器的请求数据的数量总是为最大数据量,可以在当前轮压测是首轮压测时,将候选压测数据量设置为目标压测数据量,在当前轮压测是第二轮压测时,将历史压测数据量与候选压测数量之间的最大值设置为目标压测数据量。
204,根据目标压测数据量,构造压测数据,对待测服务器进行压测。
压测数据可以是当前压测时终端、客户端输入服务器的请求数据,压测数据还可以是当前压测时输入服务器的压测样本集中的数据,其中压测样本集用指的是服务器压测的样本数据,该压测样本集的构建方法将在下文描述,此处不展开描述。
在本发明一些实施例中,构造压测数据可以从预先设置的数据库中选取与目标压测数据量相同的请求数据,也可以是构造数据量与目标压测数据量相同的压测样本集。其中,数据库中存储有用于执行压测的请求数据。
在本发明一些实施例中,可以根据目标压测数量确定相应的压测样本集,将压测样本集分发到执行压测的设备上,通过控制该设备对待测服务器进行压测。
本发明实施例根据压测指标信息确定候选压测数据量,并根据记录的历史压测数据量和候选压测数据量确定压测数据量,能够最大化贴近实际需要的数据量,避免了数据不足引起缓存导致压测结果不准确,也避免了压测数据过多造成造数资源浪费。
在本发明一些实施例中,在确定压测指标信息之后,获取当前压测的轮数,根据当前压测的轮数确定当前压测是否为首轮压测;若当前压测为首轮压测,则根据压测指标信息确定候选压测数据量;若当前压测不是首轮压测,则还需要根据记录的历史压测结果确定得到候选压测数据量。
在本发明一些实施例中,可以将当前压测的轮数与预设轮数阈值进行比较,其中预设轮数阈值大于等于1的实数,例如预设轮数阈值可以是1或者2;当预设轮数阈值是2时,如果当前压测的轮数大于或等于预设轮数阈值,说明当前压测不是首轮压测,则根据记录的历史压测结果确定得到候选压测数据量;如果当前压测的轮数小于预设轮数阈值,说明当前压测为首轮压测,则根据压测指标信息确定候选压测数据量。历史压测结果包括历史压测指标和历史压测时间,其中历史压测指标指的是该轮历史压测得到的服务器的吞吐量、并发数、每秒查询率、平均响应时间、95%的请求的响应时间、错误率、CPU使用率和内存使用率中的一个或多个数据;历史压测时间指的是从开始该轮历史压测的启动时间和停止时间之间的时间长度。
在本发明一些实施例中,当预设轮数阈值是1时,如果当前压测的轮数大于预设轮数阈值,说明当前压测不是首轮压测,则根据记录的历史压测结果确定得到候选压测数据量;如果当前压测的轮数小于或等于预设轮数阈值,说明当前压测为首轮压测,则根据压测指标信息确定候选压测数据量。
需要说明的是,上述预设轮数阈值设置的数值以及当前压测是否为首轮压测的确定方式仅为示例性说明,可以根据服务器的压测的实际应用场景设置预设轮数阈值的数值以及当前压测是否为首轮压测的确定方式,例如当第一轮压测的轮数设置为0时,可以将预设轮数阈值设置为0。
在本发明一些实施例中,在确定候选压测数据量时,可以根据当前压测的轮数确定当前压测是否为首轮压测,并在当前压测不是首轮压测时,根据当前压测的轮数确定目标历史压测结果,根据目标历史压测结果中的历史压测指标,确定得到候选压测数据量。具体地。包括:若当前压测的轮数大于或等于预设轮数阈值,则获取目标历史压测结果,根据目标历史压测结果中的历史压测指标,确定得到候选压测数据量;若当前压测的轮数小于预设轮数阈值,则根据压测指标信息确定候选压测数据量。
在本发明一些实施例中,目标历史压测结果可以是当前压测之前的每轮历史压测的历史压测结果,当目标历史压测结果是当前压测之前的每轮历史压测的历史压测结果时,历史压测指标可以是当前压测之前的每轮历史压测的历史压测结果中的历史压测指标中的历史吞吐量或历史每秒查询率各自对应的平均、众数、最大值中的任意一个。在本发明一些实施例中,目标历史压测结果还可以是当前压测的前一轮压测得到的历史压测结果,当目标历史压测结果是当前压测的前一轮压测得到的历史压测结果时,历史压测指标可以是当前压测的前一轮压测得到的历史压测结果中的历史压测指标中的历史吞吐量或历史每秒查询率。
考虑到每秒查询率(QPS)可以表征服务器的最大吞吐能力,因此在本发明一些实施例中,可以根据每秒查询率确定候选压测数据量。具体地包括:若当前压测的轮数大于或等于预设轮数阈值,则获取目标历史压测结果,根据目标历史压测结果中的历史每秒查询率和历史压测时间的乘积确定得到候选压测数据量;若当前压测的轮数小于预设轮数阈值,则根据压测指标信息中的预设每秒查询率和预设压测时间,根据预设每秒查询率和预设压测时间的乘积确定候选压测数据量。示例性的,以目标历史压测结果还是当前压测的前一轮压测得到的历史压测结果为例进行说明,若当前压测的轮数大于或等于预设轮数阈值,则获取当前压测的前一轮压测得到的历史每秒查询率和历史压测时间,根据历史每秒查询率和所述历史压测时间之间的乘积确定得到历史压测数据量,根据预设每秒查询率和预设压测时间之间的乘积得到预设压测数据量,将历史压测数据量和预设压测数据量进行比较,若历史压测数据量大于或等于预设压测数据量,则将历史压测数据量设置为候选压测数据量,若历史压测数据量小于预设压测数据量,则将预设压测数据量设置为候选压测数据量;若当前压测的轮数小于预设轮数阈值,则根据预设每秒查询率和预设压测时间之间的乘积确定候选压测数据量。
考虑到服务器的压测中负载失效区的压测是没有意义的,为了避免了盲目造数造成测试数据不足或者测试数据过多浪费造数和数据资源的问题,可以对压测过程中服务器处于轻负载区和重负载区的压测结果进行采集,这需要保证每一轮压测的压测样本集的数据量都大于或等于之前历史压测的数据量的最大值。因此在本发明一些实施例中,在确定候选压测数据量之后,根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量。
如图3所示,当压测处于初期也就是轻负载区时,并发数并不高,此时服务器的QPS有明显的线性上升趋势;之后再增加并发数,进入重负载区,此时服务器QPS进入平稳阶段,但请求的响应时间开始逐渐增加;最后当并发数继续增加,系统就会进入负载失效区,此时服务端资源利用率和服务器QPS都开始急剧下降,响应时间急剧上升,因此负载失效区的压测是完全没有意义的,而压测结果主要是采集轻负载区和重负载区的压测结果,而这段时间的服务器QPS是随着并发数的增加先增加再趋于平稳的,因此,在压测过程中,需要保证每一轮压测的数据量都取之前数据量的最大值即可。
在本发明一些实施例中,考虑到首轮压测不存在历史压测结果,因此在确定目标压测数据量时,需要结合当前压测的轮数,具体地,包括:查询记录的历史压测数据量是否为空;如果记录的历史压测数据量为空,则将候选压测数据量设置为目标压测数据量,并将该目标压测数据量和当前轮数关联保存;如果记录的历史压测数据量不为空,则将候选压测数据量与记录的每轮历史压测对应的历史压测数据量进行比较,得到比较结果;根据比较结果,从各历史压测数据量以及候选压测数据量中确定得到目标压测数据量。
在本发明一些实施例中,为了减少目标压测数据量的确定步骤,可以从各历史压测数据量以及候选压测数据量中选取最大值,将最大值设置为目标压测数据量,具体地包括:若记录的每轮历史压测对应的历史压测数据量都小于或等于候选压测数据量,则将候选压测数据量设置为目标压测数据量;如果记录的每轮历史压测对应的历史压测数据量中存在大于候选压测数据量的目标历史压测数据量,则将目标历史压测数据量设置为目标压测数据量。
示例性的,在压测过程中,建立每秒查询率集合Q,将每一轮的QPS写入存在集合Q中,得到集合Q[Q1,Q2,Q3,..Qn-1...],其中Q1为预设压测指标中的QPS,Qn为第n轮执行压测后压测结果中的QPS。建立压测数据量集合S,将每一轮压测的压测样本集的数据量写入集合S,得到集合S[S1,S2,S3,..Sn-1...],对于第n轮压测,其中n大于等于1,可以获取集合Q中历史QPS和历史压测时间t,按照历史QPS*压测时间t得到候选压测数据量S*,通过Sn=[S1,S2,..Sn-1,S*]max从各历史压测数据量以及候选压测数据量中确定得到目标压测数据量Sn,并将Sn写入集合S。
在本发明一些实施例中,为了进一步减少目标压测数据量的确定步骤,可以在步骤201之后,根据当前压测的轮数获取记录的每轮历史压测对应的历史压测结果,根据历史压测结果中历史压测指标的最大值确定得到目标压测数据量。具体地包括:根据当前压测的轮数确定当前轮压测是否为首轮压测;若当前轮压测是首轮压测,则根据压测指标信息中的预设每秒查询率和预设压测时间,得到目标压测数据量;若当前轮压测不是首轮压测,则获取记录的每轮历史压测对应的历史压测结果,将记录的每轮历史压测对应的历史压测结果中历史每秒查询率的最大值设置为目标历史每秒查询率,并获取该目标历史每秒查询率所在的历史压测结果中的历史压测时间,根据历史压测时间和目标历史每秒查询率确定得到目标压测数据量。
在本发明一些实施例中,在确定目标压测数据量之后,可以根据目标压测数据量选取压测样本集,其中压测样本集的数据量与目标压测数据量相同,根据压测样本集对待测服务器进行压测,得到压测结果。
考虑到压测样本集中的用于压测的压测数据要在模拟生产数据的场景下,避免全部命中缓存,因此每轮压测的压测样本集中的数据都采用相同的数据样本是不可行的,因此在每轮的压测开始之前,需要从多个样本子集中选取得到压测样本集,以保证每轮压测输入的压测样本集中数据不相同。具体地,包括步骤a1~a4:
步骤a1,根据预设目标轮数对样本集进行划分,得到多个样本子集。
样本子集的个数与预设目标轮数相同,并且对每个样本子集都对应有一个轮数。
样本集包括第一样本集和第二样本集,其中,第一样本集是从预设数据库中获取的,其中预设数据库中存储有用于执行压测的样本压测数据;第二样本集是从生产环境拉取得到的,例如针对高峰压测,需要取同时期的高峰数据作为第二样本集。高峰数据是服务器在生产环境中的服务器接口调用量高峰期,通过服务器在生产环境对以往高峰期的流量查看得到。其中,第二样本集中的数据是对第一样本集中数据的扩展。
考虑到现有服务器的压测中选取数据库中的样本集进行压测,由于数据库中的样本集数据多样性受限,造成压测样本集与实际生产环境之间的适配性不高,因此本发明实施例在预设数据库中的第一样本集、从生产环境拉取最符合场景的第二样本集,将第一样本集和第二样本集组成得到样本集。
在本发明一些实施例中,对第一样本集和第二样本集,均根据预设目标轮数进行等分,得到多个样本子集。其中,样本子集包括第一类样本子集和第二类样本子集,第一类样本子集是根据预设目标轮数对第一样本集进行等分得到的,第二类样本子集是根据预设目标轮数对第二样本集进行等分得到的。可以理解的是,第一类样本子集和第二类样本子集各自对应的个数与预设目标轮数相同,并且每一个轮数对应有一个第一类样本子集和一个第二类样本子集。
步骤a2,根据当前压测的轮数、多个样本子集确定得到目标样本子集。
在本发明一些是实施例中,考虑到压测样本集中的数据要在模拟生产数据的场景下,避免全部命中缓存,因此每轮压测的压测样本集中的数据都采用相同的数据样本是不可行的,但是每轮压测的压测样本集中的数据都采用不同的数据样本,可能使得数据样本差异,造成压测结果不准确,因此在当前压测不是首轮压测时,获取每轮历史压测对应的历史目标样本子集,从历史目标样本子集中获取第一预设比例的第一样本数据,从多个样本子集中确定当前压测的轮数对应的样本子集,从当前压测的轮数对应的样本子集中获取第二预设比例的第二样本数据,组合第一样本数据和第二样本数据,得到目标样本子集,这样使得当前压测的目标样本子集中的数据中既有缓存数据又有新数据,保证压测数据可以更精确的模仿生产环境中部分请求可以命中缓存。具体地,目标样本子集的确定方法包括步骤b1~b4:
步骤b1,根据当前压测的轮数,从多个样本子集确定得到当前压测的轮数对应的初始目标样本子集。
初始目标样本子集指的多个样本子集中样本子集对应的轮数与当前压测的轮数相同的样本子集。
在本发明一些实施例中,由于样本集包括第一样本集和第二样本集,样本子集包括第一类样本子集和第二类样本子集,因此初始目标样本子集包括第一初始目标样本子集和第二初始目标样本子集,其中第一初始目标样本子集指的是当前压测的轮数对应的第一类样本子集,第二初始目标样本子集指的是当前压测的轮数对应的第二类样本子集。
步骤b2,若当前压测的轮数大于或等于预设轮数阈值,则获取当前压测的轮数之前的每轮历史压测对应的历史目标样本子集。
在本发明一些实施例中,考虑到首轮压测不存在缓存数据,因此在当前压测的轮数小于预设轮数阈值,即当前压测是首轮压测时,可以直接将当前压测的轮数对应的第一初始目标样本子集和第二初始目标样本子集设置为目标样本子集。
步骤b3,根据第一预设比例从历史目标样本子集中提取第一样本数据,根据第二预设比例从初始目标样本子集中提取第二样本数据。
在本发明一些实施例中,步骤b2包括:根据当前压测的轮数确定目标历史压测轮数以及该目标历史压测轮数对应的历史目标样本子集,从历史目标样本子集中提取第一预设比例的第一样本数据,从当前压测的轮数对应的初始目标样本子集中提取第二预设比例的第二样本数据。其中,第一样本数据和第二样本数据的数据量总和与样本子集的数据量相同。
在本发明一些实施例中,目标历史压测轮数可以是当前压测的轮数-1,即获取当前压测的前一轮历史压测的历史目标样本子集。
在本发明一些实施例中,由于样本子集包括第一类样本子集和第二类样本子集,因此历史目标样本子集包括第一历史目标样本子集和第二历史目标样本子集,其中第一历史目标样本子集是第一类样本子集,第二历史目标样本子集是第二类样本子集。因此第一样本数据包括第一类第一样本数据和第二类第一样本数据,其中,第一类第一样本数据是从第一历史目标样本子集中提取的第一预设比例的样本数据,第二类第一样本数据,是从第二历史目标样本子集中提取的第一预设比例的样本数据,相应的,第二样本数据也包括第一类第二样本数据和第二类第二样本数据。
在本发明一些实施例中,可以利用滑窗从历史目标样本子集中提取第一预设比例的第一样本数据,从当前压测的轮数对应的初始目标样本子集中提取第二预设比例的第二样本数据,其中滑窗的长度与样本子集中的数据长度相同,即滑窗可以覆盖一个样本子集,如此使得每一轮压测提取的目标样本子集的数据长度都是相同的。示例性的,以同滑窗从第一样本集中获取样本数据为例进行说明,如图4所示,图4是本发明实施例提供的通过滑窗获取样本数据的一个示意,图4中,首先将第一样本集按照预设目标轮数等分,首轮压测的样本数据直接接取L11,从第二轮压测开始,都会从上一轮历史压测的历史目标样本子集中获取第一预设比例的数据。图4中,按照第一预设比例和第二预设比例将滑动窗口划分为两个窗口,通过第一窗口获取第一历史目标样本子集中的最后p条数据,将最后p条数据设置为第一类第一样本数据,通过第二窗口获取当前压测的轮数对应的第一初始目标样本子集中的q条数据,将该第一初始目标样本子集中的q条数据设置为第一类第二样本数据。第二类第一样本数据和第二类第二样本数据获取方法与第一类第一样本数据和第一类第二样本数据获取方法相似,此处不再赘述。
在本发明一些实施例中,第一预设比例和第二预设比例的具体数值可以根据服务器的压测的实际应用场景进行设置,本发明实施例不作限定。
在本发明一些实施例中,步骤b2包括:分别从各历史目标样本子集中提取第一预设比例的第一样本数据,从当前压测的轮数对应的初始目标样本子集中提取第二预设比例的第二样本数据,其中各第一样本数据和第二样本数据的数据量总和与样本子集的数据量相同。在本发明一些实施例中,可以根据当前压测的轮数确定第一预设比例,示例性的,当第二预设比例为80%,则需要各第一预设比例的和为20%,即需要从各历史目标样本子集中提取的第一样本数据的数据总量占样本子集的数据量的20%,从当前压测的轮数对应的初始目标样本子集中提取80%的第二样本数据。在当前压测的轮数为2时,即当前压测为第二轮压测,则从第一轮历史压测的历史目标样本子集提取20%的第一样本数据;在当前压测数轮数3时,需要从第一轮历史压测的历史目标样本子集提取第一个第一预设比例的第一样本数据,从第二轮历史压测的历史目标样本子集提取第二个第一预设比例的第一样本数据,并且第一个第一预设比例和第二个第一预设比例的和为20%,例如可以根据当前压测的轮数对第一预设比例进行等分,即在当前压测数轮数3时,需要从第一轮历史压测的历史目标样本子集提取10%的第一样本数据,从第二轮历史压测的历史目标样本子集提取10%的第一样本数据。
需要说明的是,上述第一预设比例的划分方式仅为示例说明,还可以根据当前压测的轮数与各轮历史压测对应的历史压测轮数之间的轮数差对第一预设比例进行加权平均,例如将轮数差较小的历史目标样本子集设置较高的权重,以当前压测数轮数3为例进行说明,在当前压测数轮数3时,从第一轮历史压测的历史目标样本子集提取5%的第一样本数据,从第二轮历史压测的历史目标样本子集提取15%的第一样本数据。
在本发明一些实施例中,为了降低样本数据的选取时间,可以根据当前压测的轮数与各轮历史压测对应的历史压测轮数之间的轮数差,从轮数差小于或等于预设轮数差的历史压测轮数的历史目标样本子集中提取第一预设比例的第一样本数据。例如,在当前压测的轮数大于或等于3时,从与当前压测的轮数之间的轮数差小于或等于2的历史压测轮数的历史目标样本子集中提取第一预设比例的第一样本数据,即在当前压测的轮数大于或等于3时,分别从当前压测的轮数-1和当前压测的轮数-2各自对应的历史目标样本子集中提取得到第一预设比例的第一样本数据,其中从当前压测的轮数-1中提取样本数据的比例和从当前压测的轮数-2提取样本数据的比例可以等额设置,也可以对第一预设比例进行加权平均。
步骤b4,组合第一样本数据和第二样本数据得到目标样本子集。
在本发明一些实施例中,在获取第一样本数据和第二样本数据之后,将第一样本数据和第二样本数据进行组合得到目标样本子集,将该目标样本子集与该当前压测的轮数关联保存。
在本发明一些实施例中,由于样本集包括第一样本集和第二样本集,因此目标样本子集包括第一目标样本子集和第二目标样本子集,其中第一目标样本子集包含第一类样本子集,第二目标样本子集包括第二类样本子集。
步骤a3,根据目标压测数据量和目标样本子集构造压测数据,得到压测样本集。
在本发明一些实施例中,步骤a3包括:若目标样本子集中数据量大于目标压测数据量,则从目标样本子集中随机选取目标压测数据量的样本数据,将选取出的目标压测数据量的样本数据设置为压测样本集;若目标样本子集中数据量小于或等于目标压测数据量,则对目标样本子集中的样本数据进行拆词、重构,增加目标样本子集中的数据量,从重构后的目标样本子集中选取目标压测数据量的样本数据,将选取出的目标压测数据量的样本数据设置为压测样本集。其中,拆词指的是将目标样本子集中的样本数据的字段进行拆分,重构指的是将拆分后的样本数据的字段进行重新组合,其中重新组合方式可以是将同一个字段拆分得到的多个字符组合按照不同于该字段的字符顺序进行组合,也可以是将不同字段拆分得到的不同字符组合进行随机组合,需要说明的随机组合方式不做限定,可以是两个字符组合进行组合,也可以是多个字符组合进行组合。示例性的,当两个字符组合进行组合时,对于样本数据中的每一个字段,获取该字段的字符数量,在该字段的字符数量大于或等于预设字符数量阈值时,根据该字段的字符数量将该字段划分为至少两个字符组合,对于每一个字符组合,将其分别与样本数据中除该字符组合所在的字段外的其余字段拆分得到的每一个其余字符组合进行随机组合得到多个新的字段,例如将该字符组合作为前缀字符,将其余字段拆分得到的其余字符组合作为后缀字符,组合前缀字符和后缀字符组合,得到新的字段。其中,在本发明一些实施例中,预设字符数量阈值可以根据实际应用场景进行设置。
在本发明一些实施例中,由于目标样本子集包括第一目标样本子集和第二目标样本子集,因此在步骤a3中,可以随机分别从第一目标样本子集和第二目标样本子集提取样本数据,得到压测样本集,该压测样本集的数据量与目标压测数据量相同。
在本发明一些实施例中,为了使压测样本中的样本数据更贴合生产场景,可以对第一目标样本子集和第二目标样本子集进行拆词、重构处理,得到新的目标样本子集,从新的目标样本子集中随机选取目标压测数据量的样本数据,将选取出的目标压测数据量的样本数据设置为压测样本集。
在本发明一些实施例中,拆词、重构处理可以根据服务器的压测的实际应用场景进行设置。
步骤a4,根据压测指标信息、压测样本集和当前压测的轮数对待测服务器进行压测。
在本发明一些实施例中,在步骤a4中,可以根据当前压测的轮数和压测指标信息设置压测脚本,执行压测脚本,根据压测样本集对待测服务器进行压测进行压测,得到压测结果。其中,压测脚本中包括压测中需要设置的压测参数,其中压测参数包括但不限于并发数、压测时间、目标指标等。其中目标指标包括但不限于预设平均响应时间、预设95%的请求的响应时间、预设错误率、预设CPU使用率和预设内存使用率。
在本发明一些实施例中,考虑到服务器的压测中在一轮压测执行完成后需要收集服务器的压测结果,再根据压测结果调整压测参数执行下一轮压测,但是在首轮压测时,由于首轮压测不存在历史压测结果,因此可以根据预先设置的压测指标信息确定压测脚本中需要设置的压测参数,因此在步骤a4中需要结合当前压测的轮数确定检测结果,其中检测结果表征当前压测是否为首轮压测,并根据检测结果设置压测脚本,具体地,设置脚本的方法包括步骤c1~c3:
步骤c1,若当前压测的轮数大于或等于预设轮数阈值,则获取当前压测的轮数对应的目标历史压测结果中的历史并发数和历史压测时间,根据历史并发数和历史压测时间设置压测脚本。
在本发明一些实施例中,若当前压测的轮数大于或等于预设轮数阈值,说明当前压测不是首轮压测,则获取当前压测的轮数-1对应的目标历史压测结果,即获取上一轮历史压测对应的目标历史压测结果,从目标历史压测结果中提取历史并发数和历史压测时间,将历史并发数和历史压测时间写入历史压测脚本,将历史压测脚本中的初始并发数更新为历史并发数,将历史压测脚本中的初始压测时间更新为历史压测时间,得到压测脚本。其中历史压测脚本是当前压测的轮数-1对应的历史压测执行的压测脚本。
步骤c2,若当前压测的轮数小于预设轮数阈值,则根据压测指标信息中的预设吞吐量、预设并发数、预设每秒查询率、预设平均响应时间和预设压测时间设置压测脚本设置压测脚本。
在本发明一些实施例中,若当前压测的轮数小于预设轮数阈值,说明当前压测是首轮压测,则获取压测指标信息中的预设压测指标和预设压测时间,将预设压测指标中的预设平均响应时间、预设95%的请求的响应时间、预设错误率、预设CPU使用率和预设内存使用率设置为目标指标,根据预设压测指标中预设并发数、预设压测时间、目标指标设置到初始压测脚本中,得到压测脚本。
步骤c3,执行压测脚本,根据压测样本集对待测服务器进行压测,得到压测结果。
在本发明一些实施例中,考虑到压测执行时间一般在晚上,缺少错误监控机制,会导致错误不易发现,后续执行无效压测,因此在压测过程中,为了避免无效压测,在压测过程中引入指标监测方法,以解决错误无监测的问题,每轮压测完成之后,获取该轮压测的压测结果,将压测结果中的压测指标与预设压测指标进行比较,若压测指标大于或等于目标指标,则自动停止压测,避免无效压测。其中,若压测指标大于或等于预设压测指标包括:若压测结果中的平均响应时间、95%的请求的响应时间、错误率、CPU使用率和内存使用率中一种或多种压测指标大于或等于大于或等于对应的预设压测指标,则停止压测。
在本发明一些实施例中,在每一轮压测中,监测服务器的压测指标,如果压测指标大于或等于预设压测指标,则停止该轮压测;如果压测指标小于预设压测指标,则继续根据压测样本集对待测服务器进行压测,得到压测结果,并根据压测结果中的压测指标确定是否继续执行下一轮压测。
在本发明一些实施例中,在压测执行中,若压测结果中压测指标小于预设压测指标,则根据压测结果进行下一轮压测。
在本发明一些实施例中,在完成一轮压测后,获取下一轮压测的压测轮数,将下一轮压测的压测轮数与预设目标轮数进行比较;如果下一轮压测的压测轮数小于或等于预设目标轮数,则根据压测结果进行下一轮压测;如果下一轮压测的压测轮数大于预设目标轮数,则停止压测,获取历史压测结果,根据历史压测结果生产压测报告,并发送压测报告至用户、工作人员。
在本发明一些实施例中,发送压测报告包括但不限于以短信形式发送、以邮件形式发送、以弹窗形式发送;在本发明一些实施例中,为了提高压测报告的可读性,压测报告的格式可以是html。
考虑到服务器的压测是对生产环境进行压测,需要避开业务时间段,而人工控制会因为疏忽导致控制时间不可靠,因此在本发明一些实施例中设置预设压测启动时间和预设压测停止时间,将服务器的系统时间与预设压测启动时间进行比较,确定是否可以执行压测;若可以执行压测,则执行压测脚本,根据压测样本集对待测服务器进行压测,并监测服务器的系统时间,当服务器的系统时间达到预设压测停止时间时,停止压测,并保存压测结果,当服务器的系统时间满足预设压测启动时间时,在上一轮停止时记录的压测结果的基础上,继续进行新一轮压测。
具体地,包括:获取服务器的系统时间,根据系统时间确定是否满足预设压测启动时间;若系统时间满足预设压测启动时间,则执行压测脚本对压测样本集进行压测;若当前系统时间满足预设压测停止时间,则对待测服务器停止压测,得到压测结果。
在本发明一些实施例中,在当前系统时间满足预设压测停止时间,对待测服务器停止压测后,每间隔预设时间查询待测服务器的当前系统时间是否满足预设压测启动时间,如果当前系统时间满足预设压测启动时间,则继续进行压测;如果当前系统时间不满足预设压测启动时间,则继续等待。
在本发明一些实施例中,在当前系统时间满足预设压测停止时间,对待测服务器停止压测后,检测是否对待测服务器完成了该场景的压测;如果对待测服务器完成了该场景的压测,则获取历史压测结果,根据历史压测结果生产压测报告,并发送压测报告至用户、工作人员;如果对待测服务器未完成该场景的压测,则每间隔预设时间查询待测服务器的当前系统时间是否满足预设压测启动时间。其中,可以根据预设目标压测轮数检测是否对待测服务器完成了该场景的压测。
在本发明一些实施例中,在步骤c1之前,获取服务器的当前系统时间,将服务器的当前系统时间与预设压测启动时间进行比较,判断当前系统时间是否满足预设压测启动时间;如果当前系统时间满足预设压测启动时间,则执行步骤c1,如果当前系统时间不是预设压测启动时间,则继续等待,直到新的当前系统时间满足预设压测启动时间。
为了更好实施本发明实施例提供的服务器的压测方法,在服务器的压测方法基础上,提供一种服务器的压测装置,如图5所示,图5是本发明实施例提供的服务器的压测装置的一个实施例结构示意图,所示的服务器的压测装置包括:
数据获取模块501,用于获取压测指标信息和当前压测的轮数;
数据量计算模块502,用于根据压测指标信息和当前压测的轮数确定候选压测数据量;
数据量确定模块503,用于根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;
压测模块504,用于根据目标压测数据量,构造压测数据,对待测服务器进行压测。
在本发明一些实施例中,数据量确定模块503,包括:
将候选压测数据量与记录的每轮历史压测对应的历史压测数据量进行比较,得到比较结果;
根据比较结果,从各历史压测数据量以及候选压测数据量中确定得到目标压测数据量。
在本发明一些实施例中,数据量计算模块502包括:
若当前压测的轮数大于或等于预设轮数阈值,则获取前一轮压测得到的历史每秒查询率和历史压测时间,根据历史每秒查询率和历史压测时间,得到历史压测数据量,根据预设每秒查询率和预设压测时间、以及历史压测数据量确定得到候选压测数据量;
若当前压测的轮数小于预设轮数阈值,则根据压测指标信息中的预设每秒查询率和预设压测时间确定候选压测数据量。
在本发明一些实施例中,压测模块504包括:
根据预设目标轮数对样本集进行等分,得到多个样本子集;多个样本子集中每个样本子集对应有一个压测轮数,多个样本子集的数量与预设目标轮数相同;
根据当前压测的轮数、多个样本子集确定得到目标样本子集;
根据目标压测数据量和目标样本子集构造压测数据,得到压测样本集;
根据压测指标信息、压测样本集和当前压测的轮数对待测服务器进行压测。
在本发明一些实施例中,压测模块504包括:
根据当前压测的轮数,从多个样本子集确定得到当前压测的轮数对应的初始目标样本子集;
若当前压测的轮数大于或等于预设轮数阈值,则获取当前压测的轮数之前的每轮历史压测对应的历史目标样本子集;
根据第一预设比例从历史目标样本子集中提取第一样本数据,根据第二预设比例从初始目标样本子集中提取第二样本数据;
组合第一样本数据和第二样本数据得到目标样本子集。
在本发明一些实施例中,压测模块504包括:
若当前压测的轮数大于或等于预设轮数阈值,则获取当前压测的轮数对应的目标历史压测结果中的历史并发数和历史压测时间,根据历史并发数和历史压测时间设置压测脚本;
若当前压测的轮数小于预设轮数阈值,则根据压测指标信息中的预设并发数、预设平均响应时间和预设压测时间设置压测脚本;
执行压测脚本,根据压测样本集对待测服务器进行压测,得到压测结果。
在本发明一些实施例中,压测模块504包括:
获取服务器的系统时间,根据系统时间确定是否满足预设压测启动时间;
若系统时间满足预设压测启动时间,则执行压测脚本,根据压测样本集对待测服务器进行压测;
在当前系统时间满足预设压测停止时间,则对待测服务器停止压测,得到压测结果。
在本发明一些实施例中,压测模块504包括:
若目标样本子集的数据量大于目标压测数据量,则从目标样本子集中随机选取目标压测数据量的目标样本数据,根据选取的目标样本数据设置为压测样本集;
若目标样本子集的数据量小于或等于目标压测数据量,则通过拆词、重构对目标样本子集的数据量进行扩充,从扩充后的目标样本子集中随机选取目标压测数据量的目标样本数据,将选取的目标样本数据设置为压测样本集。
本发明实施例根据压测指标信息确定候选压测数据量,并根据记录的历史压测数据量和候选压测数据量确定压测数据量,能够最大化贴近实际需要的数据量,避免了数据不足引起缓存导致压测结果不准确,也避免了压测数据过多造成造数资源浪费。
本发明实施例还提供一种服务器的压测设备,如图6所示,其示出了本发明实施例所涉及的服务器的压测设备的结构示意图,具体来讲:
该服务器的压测设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图6中示出的服务器的压测设备结构并不构成对服务器的压测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该服务器的压测设备的控制中心,利用各种接口和线路连接整个服务器的压测设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行服务器的压测设备的各种功能和处理数据,从而对服务器的压测设备进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的压测设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
服务器的压测设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器的压测设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器的压测设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器的压测设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取压测指标信息和当前压测的轮数;
根据压测指标信息和当前压测的轮数确定候选压测数据量;
根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;
根据目标压测数据量,构造压测数据,对待测服务器进行压测。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种服务器的压测方法中的步骤。例如,该指令可以执行如下步骤:
获取压测指标信息和当前压测的轮数;
根据压测指标信息和当前压测的轮数确定候选压测数据量;
根据记录的历史压测数据量和候选压测数据量,确定得到目标压测数据量;
根据目标压测数据量,构造压测数据,对待测服务器进行压测。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种服务器的压测方法中的步骤,因此,可以实现本发明实施例所提供的任一种服务器的压测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种服务器的压测方法、装置、设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种服务器的压测方法,其特征在于,所述方法包括:
获取待测服务器的压测指标信息和当前压测的轮数;
根据所述压测指标信息和所述当前压测的轮数确定候选压测数据量;
根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量;
根据所述目标压测数据量,构造压测数据,对所述待测服务器进行压测。
2.如权利要求1所述的服务器的压测方法,其特征在于,所述根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量包括:
将所述候选压测数据量与记录的每轮历史压测对应的历史压测数据量进行比较,得到比较结果;
根据所述比较结果,从各所述历史压测数据量以及所述候选压测数据量中确定得到目标压测数据量。
3.如权利要求1所述的服务器的压测方法,其特征在于,所述压测指标信息包括预设每秒查询率和预设压测时间,所述根据所述压测指标信息和所述当前压测的轮数确定候选压测数据量包括:
若所述当前压测的轮数大于或等于预设轮数阈值,则获取前一轮压测得到的历史每秒查询率和历史压测时间,根据所述历史每秒查询率和所述历史压测时间,得到历史压测数据量,根据所述预设每秒查询率和所述预设压测时间、以及所述历史压测数据量确定得到候选压测数据量;
若所述当前压测的轮数小于预设轮数阈值,则根据所述预设每秒查询率和所述预设压测时间确定候选压测数据量。
4.如权利要求1至3任一项所述的服务器的压测方法,其特征在于,所述根据所述目标压测数据量,构造压测数据,对待测服务器进行压测包括:
根据预设目标轮数对样本集进行等分,得到多个样本子集;所述多个样本子集中的每个样本子集对应有一个轮数,所述多个样本子集的数量与所述预设目标轮数相同;
根据所述当前压测的轮数、所述多个样本子集确定得到目标样本子集;
根据所述目标压测数据量和所述目标样本子集构造压测数据,得到压测样本集;
根据所述压测指标信息、所述压测样本集和所述当前压测的轮数对待测服务器进行压测。
5.如权利要求4所述的服务器的压测方法,其特征在于,所述根据所述当前压测的轮数、所述多个样本子集确定得到目标样本子集包括:
根据所述当前压测的轮数,从所述多个样本子集确定得到所述当前压测的轮数对应的初始目标样本子集;
若所述当前压测的轮数大于或等于预设轮数阈值,则获取所述当前压测的轮数之前的每轮历史压测对应的历史目标样本子集;
根据第一预设比例从各所述历史目标样本子集中提取第一样本数据,根据第二预设比例从所述初始目标样本子集中提取第二样本数据;
组合所述第一样本数据和所述第二样本数据得到目标样本子集。
6.如权利要求4所述的服务器的压测方法,其特征在于,所述根据所述压测指标信息、所述压测样本集和所述当前压测的轮数对待测服务器进行压测包括:
若所述当前压测的轮数大于或等于预设轮数阈值,则获取所述当前压测的前一轮压测得到的历史并发数和历史压测时间,根据所述历史并发数和所述历史压测时间设置压测脚本;
若所述当前压测的轮数小于预设轮数阈值,则根据所述压测指标信息中的预设并发数、预设平均响应时间和预设压测时间设置压测脚本;
执行所述压测脚本,根据所述压测样本集对待测服务器进行压测,得到压测结果。
7.如权利要求6所述的服务器的压测方法,其特征在于,所述执行所述压测脚本,根据所述压测样本集对待测服务器进行压测,得到压测结果包括:
获取服务器的系统时间,根据所述系统时间确定是否满足预设压测启动时间;
若所述系统时间满足所述预设压测启动时间,则执行所述压测脚本,根据所述压测样本集对待测服务器进行压测;
在所述当前系统时间满足预设压测停止时间时,对所述待测服务器停止压测,得到压测结果。
8.如权利要求4所述的服务器的压测方法,其特征在于,所述根据所述目标压测数据量和所述目标样本子集构造压测数据,得到压测样本集包括:
若所述目标样本子集的数据量大于所述目标压测数据量,则从所述目标样本子集中随机选取与所述目标压测数据量相同数据量的目标样本数据,将选取的所述目标样本数据设置为压测样本集;
若所述目标样本子集的数据量小于或等于所述目标压测数据量,则通过拆词、重构对所述目标样本子集的数据量进行扩充,从扩充后的目标样本子集中随机选取与所述目标压测数据量相同数据量的目标样本数据,将选取的所述目标样本数据设置为压测样本集。
9.一种服务器的压测装置,其特征在于,所述服务器的压测装置包括:
数据获取模块,用于获取待测服务器的压测指标信息和当前压测的轮数;
数据量计算模块,用于根据所述压测指标信息和所述压测轮数确定候选压测数据量;
数据量确定模块,用于根据记录的历史压测数据量和所述候选压测数据量,确定得到目标压测数据量;
压测模块,用于根据所述目标压测数据量,构造压测数据,对待测服务器进行压测。
10.一种服务器的压测设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至8任一项所述的服务器的压测方法中的操作。
11.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的服务器的压测方法中的步骤。
CN202210383951.6A 2022-04-12 2022-04-12 服务器的压测方法、装置、设备和存储介质 Pending CN116932346A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210383951.6A CN116932346A (zh) 2022-04-12 2022-04-12 服务器的压测方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210383951.6A CN116932346A (zh) 2022-04-12 2022-04-12 服务器的压测方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116932346A true CN116932346A (zh) 2023-10-24

Family

ID=88379478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210383951.6A Pending CN116932346A (zh) 2022-04-12 2022-04-12 服务器的压测方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116932346A (zh)

Similar Documents

Publication Publication Date Title
CN107992401B (zh) 性能测试评价方法、装置、终端设备及存储介质
CN107480015B (zh) 负载测试方法、装置、系统、存储介质与压测服务器
US9251032B2 (en) Method, computer program, and information processing apparatus for analyzing performance of computer system
CN109753406B (zh) 接口的性能监控方法、装置、设备及计算机可读存储介质
CN110221982B (zh) 业务系统的性能测试方法、装置、设备及可读存储介质
CN105279087B (zh) 应用在测试软件中的测试方法和测试系统
WO2019153487A1 (zh) 系统性能的度量方法、装置、存储介质和服务器
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
CN111045879B (zh) 压力测试报告的生成方法、装置及存储介质
CN112835792A (zh) 一种压力测试系统及方法
CN107634878B (zh) 一种性能测试管理平台
CN114325405A (zh) 电池组一致性分析方法、建模方法、装置、设备及介质
CN108667740A (zh) 流量控制的方法、装置及系统
CN112506751B (zh) 一种服务器整机性能的对比测试方法、装置、设备及介质
CN113127356A (zh) 压测方法、装置、电子设备及存储介质
CN112269697B (zh) 一种设备存储性能测试方法、系统及相关装置
CN112948262A (zh) 一种系统测试方法、装置、计算机设备和存储介质
CN116932346A (zh) 服务器的压测方法、装置、设备和存储介质
US8943028B2 (en) Database compression analyzer
CN116450483A (zh) 一种确定软件分配的负载的方法、装置、服务器及介质
CN115037665B (zh) 设备测试方法和装置
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN114780388A (zh) 一种基于国产操作系统软件商店的并发测试方法及装置
CN112988589A (zh) 一种接口测试方法、装置和系统
CN109117379A (zh) 一种web端性能测试数据自动收集系统及方法

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