CN113835991A - 压测方法、装置、设备及计算机可读存储介质 - Google Patents
压测方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113835991A CN113835991A CN202010582808.0A CN202010582808A CN113835991A CN 113835991 A CN113835991 A CN 113835991A CN 202010582808 A CN202010582808 A CN 202010582808A CN 113835991 A CN113835991 A CN 113835991A
- Authority
- CN
- China
- Prior art keywords
- pressure measurement
- data
- server cluster
- server
- test
- 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
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/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Measuring Fluid Pressure (AREA)
Abstract
本申请公开了一种压测方法、装置、设备及计算机可读存储介质,属于系统性能测试技术领域。所述方法包括:根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度;生成所述服务器集群对应的压测应用;向所述服务器集群发送所述压测应用以及所述并发度;获取所述服务器集群反馈的所述压测数据。上述技术方案能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的压测机,达到了简化压测方法的效果。
Description
技术领域
本申请涉及系统性能测试技术领域,特别涉及一种压测方法、装置、设备及计算机可读存储介质。
背景技术
压测也可以称为压力测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测软件的性能、可靠性、稳定性等。
相关技术中一种压测方法中,由操作人员根据待测系统以及数据集配置对应的压测工具(例如装载机(LoadRunner)),实现压测方法的服务器(该服务器仅用于对待测系统进行压测,因而该服务器也可以被称为压测机)根据待测系统以及数据集中测试数据的份数的不同设置相应的数量,待测系统为服务器进行压测的系统,服务器可以根据数据集与压测工具对待测系统进行压测。
但是,上述压测方法较为复杂。
发明内容
本申请实施例提供了一种压测方法、装置、设备及计算机可读存储介质。
所述技术方案如下:
根据本申请的一方面,提供了一种压测方法,所述压测方法包括:
根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,所述并发度用于指示所述服务器集群将所述数据集中的测试数据分成至少两个子数据集;
生成所述服务器集群对应的压测应用,所述压测应用用于指示所述服务器集群通过所述待测系统并发处理所述至少两个子数据集以对所述待测系统进行压测,并反馈压测数据;
向所述服务器集群发送所述压测应用以及所述并发度;
获取所述服务器集群反馈的所述压测数据。
另一方面,提供了一种压测方法,所述压测方法包括:
接收终端发送的压测应用以及并发度;
根据所述并发度将待测系统的数据集分为至少两个子数据集;
根据所述压测应用,通过所述待测系统并发执行所述至少两个子数据集中的测试数据,以对所述待测系统进行压测;
获取压测数据;
向所述终端发送所述压测数据。
另一方面,提供了一种压测装置,所述压测装置包括:
确定模块,用于根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,所述并发度用于指示所述服务器集群将所述数据集中的测试数据分成至少两个子数据集;
生成模块,用于生成所述服务器集群对应的压测应用,所述压测应用用于指示所述服务器集群通过所述待测系统并发处理所述至少两个子数据集以对所述待测系统进行压测,并反馈压测数据;
发送模块,用于向所述服务器集群发送所述压测应用以及所述并发度;
获取模块,用于获取所述服务器集群反馈的所述压测数据。
另一方面,提供了一种压测设备,所述压测设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如一方面所述的压测方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如一方面所述的压测方法。
另一方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器可以从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述任一方面提供的压测方法,使得该计算机设备部署上述任一方面或者任一方面的各种可能实现提供的压测装置。
本申请实施例提供的技术方案带来的有益效果至少包括:
提供了一种压测方法,该压测方法通过确定并发度,并生成服务器集群对应的压测应用,将压测应用与并发度发送至服务器集群,进行压测后获取服务器集群反馈的压测数据,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的压测机,达到了简化压测方法的效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的压测方法的实施环境的示意图;
图2是本申请实施例提供的一种压测方法的流程图;
图3是本申请实施例提供的另一种压测方法的流程图;
图4是本申请实施例提供的另一种压测方法的流程图;
图5是本申请实施例提供的一种Spark集群实现压测任务的示意图;
图6是本申请实施例提供的另一种压测方法的流程图;
图7是本申请实施例提供的一种压测装置的框图;
图8是本申请实施例提供的另一种压测装置的框图;
图9是本申请实施例提供的一种压测装置的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在一种压测方法中,由操作人员根据待测系统以及数据集开发对应的压测工具,实现压测方法的服务器根据待测系统以及数据集的不同设置相应的数量,待测系统为服务器进行压测的系统,服务器可以根据数据集与压测工具对待测系统进行压测。
压测工具是基于不同的语言在单个服务器,或者将压测应用复制到多个服务器,使多个服务器同时执行压测应用。压测工作需要单独的开发对应的压测系统和工具。另外对于压测结果的数据收集和统计,在压测任务不同时,也需要专门进行定制化的开发,以获取不同的压测任务的压测结果的数据。
本申请实施例提供了一种压测方法、装置、设备及计算机可读存储介质。
图1是本申请实施例提供的压测方法的实施环境的示意图,该实施环境可以包括服务器11以及终端12。
服务器11可以为服务器集群。服务器11可以为火花(Spark)集群。Spark是一种开源集群计算环境,是专为大规模数据处理而设计的快速通用的计算引擎,Spark集群是一种服务器集群,执行压测的线程可以向Spark集群中的工作追踪器(JobTracker)申请服务器,Spark集群中的工作追踪器分配好服务器后,Spark集群中除工作追踪器外的其他服务器可以根据待测系统与数据集进行压测。Spark集群可以由至少两台服务器组成,至少两台服务器包括一台用于对Spark集群进行任务控制的服务器(也即是工作追踪器),还包括至少一台用于执行压测任务的服务器。
终端12可以为手机、平板电脑、笔记本电脑、智能可穿戴设备等各种终端。终端12可以通过有线或无线的方式(图1示出的是以无线的方式进行连接的情况)与服务器连接。
服务器11可以通过终端12获取待测系统的数据集,服务器11还可以通过终端12获取待测系统。
图2是本申请实施例提供的一种压测方法的流程图。该压测方法可以应用于上述实施环境中,本申请实施例在此以应用于终端为例进行说明。该压测方法可以包括:
步骤201,根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度。
服务器集群中单个服务器的并发处理份数可以为单个服务器并发处理的数据集中测试数据的份数,终端可以根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度。其中,并发度用于指示服务器集群将数据集中的测试数据分成至少两个子数据集。
步骤202,生成服务器集群对应的压测应用。
其中,压测应用用于指示服务器集群通过待测系统并发处理至少两个子数据集以对待测系统进行压测,并反馈压测数据。压测应用还可以用于指示服务器集群读取数据集,并将数据集中的测试数据的格式转换为服务器集群对应的格式,再将格式转换后的数据集根据并发度分为至少两个子数据集。
步骤203,向服务器集群发送压测应用以及并发度。
终端可以向服务器集群发送压测应用以及并发度,该并发度记录在压测应用中。服务器集群可以根据并发度与压测应用对待测系统进行压测。
步骤204,获取服务器集群反馈的压测数据。
终端可以获取服务器集群反馈的压测数据。压测应用可以将服务器集群的压测数据进行统计,并由服务器集群将该压测数据反馈至终端,以便终端或操作人员根据该压测数据判断待测系统是否可以满足实际需求。
综上所述,本申请实施例提供了一种压测方法,该压测方法通过确定并发度,并生成服务器集群对应的压测应用,将压测应用于并发度发送至服务器集群,进行压测后获取服务器集群反馈的压测数据,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
图3是本申请实施例提供的另一种压测方法的流程图,该压测方法可以应用于上述实施环境的终端中,本申请实施例在此以应用于终端为例进行说明。参考图3可以看出,该压测方法可以包括:
步骤301,获取初始数据集。
终端可以获取初始数据集,该终端还可以提供待测服务,待测系统可以为应用软件的后台服务系统,待测服务可以为应用软件中的某一项服务。终端在对待测服务进行压测之前,操作人员可以预先梳理高峰业务场景,例如高峰业务场景可以为某一时间段共有x万个用户同时进行y服务。进而终端可以获取高峰业务场景时的初始数据集。初始数据集可以为历史数据,也可以通过火花流(spark streaming)获取待测系统在一段时间内的实时数据,并将该实时数据作为初始数据集。
步骤302,对初始数据集进行数据清洗,得到数据集。
终端可以对初始数据集进行数据清洗,得到数据集,该数据清洗可以包括缺失值清洗,格式内容清洗,逻辑错误清洗等操作。缺失值清洗可以包括确定缺失值范围,去除不需要的字段,填充缺失内容并重新取数。格式内容清洗可以包括将时间,日期,数值,全半角等显示格式不一致的数据清洗为格式一致的数据,去除内容中不该存在的字符以及去除与该字段应有内容不符的其他内容。逻辑错误清洗包括数据去重,去除数据中不合理的数值以及修正数据中矛盾的内容。
其中,数据集可以存储在存储系统中(例如分布式文件系统(Hadoop DistributedFile System,HDFS),一种关系型数据库管理系统(My Structured Query Language,MySQL),开源分布式搜索引擎(Elastic Search,ES)以及另一种关系型数据库(OracleDatabase,Oracle))或文本文件中。数据集可以包括多个测试数据,每个测试数据由至少两个子数据构成,也即是至少两个子数据可以构成一份测试数据,每个子数据之间可以由分隔符切分,以便终端将数据集上传至服务器集群时,服务器集群可以识别出每个子数据。示例性的,数据集存储在存储系统或文本文件中时,该数据集中的同一个测试数据的至少两个子数据可以存储在存储系统或文本文件的一行中,也即是存储系统或文本文件中的一行数据为一份测试数据。
示例性的,数据集中的每份数据可以包括用户标识,用户的购买商品,用户的购买金额以及用户是否付款等子数据,上述子数据可以存储在存储系统或文本文件中的一行中,每个子数据之间可以由分割符切分。
步骤303,将待测系统的数据集中测试数据的份数与服务器集群中单个服务器的并发处理份数的商确定为压测时的最少服务器数量。
终端可以将待测系统的数据集中测试数据的份数与服务器集群中单个服务器的并发处理份数的商确定为压测时的最少服务器数量。测试数据的份数可以由操作人员根据单次压测需求进行设置,终端可以将待测系统的数据集进行单机压测,以获取服务器集群中单个服务器的并发处理份数,进而根据待测系统的数据集中测试数据的份数与服务器集群中单个服务器的并发处理份数确定压测时的最少服务器数量。单机压测时,Spark集群包括两个服务器,一台服务器用于对Spark集群进行任务控制(也即是工作追踪器),另一台服务器用于执行压测任务。Spark集群中的工作追踪器获取数据集中的待测数据,并将待测数据发送至用于执行压测任务的服务器,将压测结果发送至终端,操作人员或终端可以根据该压测结果得知单个服务器的并发处理待测数据的份数,进而可以确定压测时的最少服务器数量。
并发是指多用户在同一时刻,共同执行某一操作的情况,并发着重考察待测系统的瞬间压力。
示例性的,待测系统的数据集中测试数据的份数可以为1000,Spark集群中单个服务器的并发处理份数为100,则终端可以将待测系统的数据集中测试数据的份数与Spark集群中单个服务器的并发处理份数的商确定为压测时的最少服务器数量,也即是压测时的最少服务器数量为10。
步骤304,将最少服务器数量与服务器中处理器的数量的积确定为并发度。
并发度用于指示Spark集群将数据集中的测试数据分成至少两个子数据集。终端可以根据压测时最少服务器数量以及服务器中处理器的数量的积确定为并发度。服务器的处理器为服务器的中央处理器(Central Processing Unit,CPU),服务器中每个CPU可以对应处理一个子数据集,也即是服务器中每个CPU可以对应一个线程。可选地,服务器中处理器的数量为2-4个。终端确定的并发度还可以小于最少服务器数量与服务器中处理器的数量的积。
示例性的,若服务器中处理器的数量为2,最少服务器数量为10,则并发度可以为20,也即是可以将数据集中的待测数据分为20份。并发度也可以设置为15,当并发度设置为15时,Spark集群中有5个CPU未参与压测,使得Spark集群中部分资源浪费,且Spark集群中每个CPU处理的数据较多,使得Spark集群处理数据集的时间较长。
步骤305,生成压测应用。
压测应用用于指示Spark集群读取数据集,并将数据集中的测试数据的格式转换为Spark集群对应的格式,再将格式转换后的数据集根据并发度分为至少两个子数据集,且并发处理至少两个子数据集以对待测系统进行压测。压测应用用于指示Spark集群通过待测系统并发处理至少两个子数据集以对待测系统进行压测,并反馈压测数据。
压测应用也即是Spark应用。Spark可以提供多种算子,每种算子可以提供一种数据操作方法。在本申请实施例中,Spark应用可以包括读取(read)算子,分布(map)算子,分配(repartition)算子以及循环分配(foreachpartition)算子。read算子可以用于读取存储在终端中的数据集中的测试数据,map算子可以用于将从终端中读取到的测试数据转换为服务器集群中服务器接口可接受的数据格式,repartition算子可以用于将数据集中的测试数据划分为至少两个子数据集,foreachpartition算子可以用于根据服务器的处理器将子数据集分配至服务器上,并执行压测。
步骤306,对压测应用进行压缩,得到压缩应用。
终端可以对压测应用进行压缩,得到压缩应用,以便将压缩应用发送至Spark集群以执行压测。
示例性的,压缩应用可以为归档文件(java archive,jar)压缩应用或动态类型语言(Python)压缩应用。
步骤307,向服务器集群发送压缩应用以及并发度。
终端可以向Spark集群发送压缩应用以及并发度。其中并发度记录在压缩应用中。终端可以通过火花提交(Spark-submit)的方式,按照上述步骤确定的并发度将压缩应用提交给Spark集群。
终端向Spark集群发送压缩应用与并发度,Spark集群可以根据压缩应用与并发度对待测系统进行压测。示例性的,Spark集群可以接收终端发送的压测应用以及并发度,并根据并发度将待测系统的数据集分为至少两个子数据集,Spark集群通过待测系统并发执行至少两个子数据集中的测试数据,以对待测系统进行压测,在压测结束后,Spark集群可以获取压测数据,并向终端发送该压测数据。
步骤308,获取服务器集群反馈的压测数据。
终端可以获取Spark集群反馈的压测数据。压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。终端可以获取Spark集群反馈的压测数据,并根据该压测数据判断待测系统是否可以满足实际需求。
综上所述,本申请实施例提供了一种压测方法,该压测方法通过确定并发度,并生成服务器集群对应的压测应用,将压测应用于并发度发送至服务器集群,进行压测后获取服务器集群反馈的压测数据,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
图4是本申请实施例提供的另一种压测方法的流程图。该压测方法可以应用于图1所示的服务器中。参考图4可以看出,该压测方法可以包括:
步骤401,接收终端发送的压测应用以及并发度。
Spark集群可以接受终端发送的压测应用以及记录在该压测应用中的并发度,该压测应用为压缩应用,也即是Spark集群接收到的终端发送的压测应用为经过压缩的压测应用。
压测应用也即是Spark应用。Spark可以提供多种算子,每种算子可以提供一种数据操作方法。在本申请实施例中,Spark应用可以包括读取(read)算子,分布(map)算子,分配(repartition)算子以及循环分配(foreachpartition)算子。read算子可以用于读取存储在终端中的数据集中的测试数据,map算子可以用于将从终端中读取到的测试数据转换为服务器集群中服务器接口可接受的数据格式,repartition算子可以用于将数据集中的测试数据划分为至少两个子数据集,foreachpartition算子可以用于根据服务器的处理器将子数据集分配至服务器上,并执行压测。
步骤402,根据并发度将待测系统的数据集分为至少两个子数据集。
Spark集群可以先从终端获取待测系统的数据集,并根据压测应用中的并发度将待测系统的数据集分为至少两个子数据集。
Spark集群可以通过read算子读取存储在终端中的数据集中的测试数据,通过map算子将从终端中读取到的测试数据转换为Spark集群中服务器接口可接受的数据格式,通过repartition算子将数据集中的测试数据划分为至少两个子数据集。
Spark集群可以根据终端发送的压测应用中的并发度将待测系统的数据集中的测试数据分为至少两个子数据集。每个子数据集可以分别由Spark集群中单个服务器中的一个处理器进行处理。
步骤403,根据压测应用,通过待测系统并发执行至少两个子数据集中的测试数据,以对待测系统进行压测。
Spark集群可以在压测应用的指示下进行压测,该压测的过程可以包括获取待测系统,并通过待测系统并发处理至少两个子数据集中的测试数据,以对待测系统进行压测。Spark集群中的工作追踪器可以获取待测数据并将待测数据发送至对应的服务器,服务器可以获取待测系统,以及测试数据,并根据测试数据对待测系统发起请求调用,可以获取请求的次数,待测系统的响应时间,以及待测系统的响应结果。
Spark集群中的服务器可以通过foreachpartition算子根据Spark集群中服务器的处理器将子数据集分配至服务器上,已对待测系统进行压测。
步骤404,获取压测数据。
在压测结束后,Spark集群可以获取压测数据,压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。
步骤405,向终端发送压测数据。
在压测结束后,Spark集群中的工作追踪器可以向终端发送压测数据。压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。终端可以获取Spark集群反馈的压测数据,并根据该压测数据判断待测系统是否可以满足实际需求。
示例性的,如图5所示,其为本申请实施例提供的一种Spark集群实现压测任务的示意图。Spark集群500可以包括至少两个服务器(图3所示为Spark集群500包括四个服务器的情况,但本申请实施例对此并不进行限制),一个服务器可以用于对Spark集群进行任务控制(也即是工作追踪器),至少一个其他服务器可以用于获取数据集以执行压测任务。终端可以向Spark集群发送压测应用以及并发度,工作追踪器可以将压测应用部署在Spark集群中的服务器上,并根据并发度将测试数据发送至对应的服务器,Spark集群在完成一次压测任务后,可以将压测数据发送至终端以便操作人员进行处理,该终端与发送压测应用与并行度的应用可以为同一个终端,也可以为不同的终端,本申请实施例对此并不进行限制。
综上所述,本申请实施例提供了一种压测方法,该压测方法可以根据终端发送的压测应用关于并发度对待测系统的数据集进行划分,在执行压测后将压测数据发送至终端,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
图6是本申请实施例提供的另一种压测方法的流程图,该压测方法可以应用于图1所示的实施环境。参考图6,该压测方法可以包括:
步骤601,终端获取初始数据集。
终端可以获取初始数据集,该终端还可以提供待测服务,待测系统可以为应用软件的后台服务系统,待测服务可以为应用软件中的某一项服务。终端在对待测服务进行压测之前,操作人员可以预先梳理高峰业务场景,例如高峰业务场景可以为某一时间段共有x万个用户同时进行y服务。进而终端可以获取高峰业务场景时的初始数据集。
步骤602,终端对初始数据集进行数据清洗,得到数据集。
终端可以对初始数据集进行数据清洗,得到数据集,该数据集可以存储在终端的存储系统中(例如分布式文件系统(Hadoop Distributed File System,HDFS),一种关系型数据库管理系统(My Structured Query Language,MySQL),开源分布式搜索引擎(ElasticSearch,ES)以及另一种关系型数据库(Oracle Database,Oracle))以及文本文件中。数据集可以由多个测试数据构成,每各测试数据由至少两个子数据构成,每个子数据之间可以由分隔符切分,以便终端将数据集上传至服务器集群时,服务器集群可以识别出每个子数据。示例性的,数据集存储在存储系统或文本文件中时,该数据集中的同一个测试数据的至少两个子数据可以存储在存储系统或文本文件的一行中。
该数据清洗可以包括缺失值清洗,格式内容清洗,逻辑错误清洗等操作。缺失值清洗可以包括确定缺失值范围,去除不需要的字段,填充缺失内容并重新取数。格式内容清洗可以包括将时间,日期,数值,全半角等显示格式不一致的数据清洗为格式一致的数据,去除内容中不该存在的字符以及去除与该字段应有内容不符的其他内容。逻辑错误清洗包括数据去重,去除数据中不合理的数值以及修正数据中矛盾的内容。
步骤603,终端将待测系统的数据集中测试数据的份数与服务器集群中单个服务器的并发处理份数的商确定为压测时的最少服务器数量。
终端可以将待测系统的数据集中测试数据的份数与Spark集群中服务器的并发处理份数的商确定为压测时的最少服务器数量。测试数据的份数可以由操作人员根据单次压测需求进行设置,终端可以将待测系统的数据集进行单机压测,以获取Spark集群中单个服务器的并发处理待测数据的份数,进而根据待测系统的数据集中测试数据的份数与Spark集群中单个服务器的并发处理份数确定压测时的最少服务器数量。单机压测时,Spark集群包括两个服务器,一台服务器用于对Spark集群进行任务控制,另一台服务器用于执行压测任务。Spark集群获取数据集中的待测数据,将待测数据发送至用于执行压测任务的服务器,并将压测结果发送至终端,操作人员或终端可以根据该压测结果得知单个服务器的并发处理待测数据的份数,进而可以确定压测时的最少服务器数量。
并发是指多用户在同一时刻,共同执行某一操作的情况,并发着重考察待测系统的瞬间压力。
步骤604,终端将最少服务器数量与服务器中处理器的数量的积确定为并发度。
并发度用于指示服务器集群将数据集中的测试数据分成至少两个子数据集。终端可以根据压测时最少服务器数量以及服务器中处理器的数量的积确定为并发度。服务器的处理器为服务器的中央处理器(Central Processing Unit,CPU),服务器中每个CPU可以对应处理一个子数据集。
步骤605,终端生成压测应用。
终端可以生成压测应用,压测应用用于指示服务器集群读取数据集,并将数据集中的测试数据的格式转换为服务器集群对应的格式,再将格式转换后的数据集根据并发度分为至少两个子数据集,且并发处理至少两个子数据集以对待测系统进行压测。压测应用用于指示服务器集群通过待测系统并发处理至少两个子数据集以对待测系统进行压测,并反馈压测数据。
压测应用中可以包括读取(read)算子,分布(map)算子,分配(repartition)算子以及循环分配(foreachpartition)算子。read算子可以用于读取存储在终端中的数据集中的测试数据,map算子可以用于将从终端中读取到的测试数据转换为服务器集群中服务器接口可接受的数据格式,repartition算子可以用于将数据集中的测试数据划分为至少两个子数据集,foreachpartition算子可以用于根据服务器的处理器将子数据集分配至服务器上,并执行压测。
步骤606,终端对压测应用进行压缩,得到压缩应用。
终端可以对压测应用进行压缩,得到压缩应用,以便将压缩应用发送至Spark集群以执行压测。
示例性的,压缩应用可以为jar压缩应用或Python压缩应用。
步骤607,终端向服务器集群发送压缩应用以及并发度。
终端可以向Spark集群发送压缩应用以及并发度。其中并发度记录在压缩应用中。终端可以通过火花提交(Spark-submit)的方式,按照上述步骤确定的并发度将压缩应用提交给Spark集群。
终端向Spark集群发送压缩应用与并发度,服务器可以根据压缩应用与并发度对待测系统进行压测。
步骤608,服务器集群根据并发度将待测系统的数据集分为至少两个子数据集。
Spark集群可以先从终端获取待测系统的数据集,并根据压测应用中的并发度将待测系统的数据集分为至少两个子数据集。
Spark集群可以通过read算子读取存储在终端中的数据集中的测试数据,通过map算子将从终端中读取到的测试数据转换为Spark集群中服务器接口可接受的数据格式,通过repartition算子将数据集中的测试数据划分为至少两个子数据集。
Spark集群可以根据终端发送的压测应用中的并发度将待测系统的数据集中的测试数据分为至少两个子数据集。每个子数据集可以分别由Spark集群中单个服务器中的处理器进行处理。
步骤609,服务器集群根据压测应用,通过待测系统并发执行至少两个子数据集中的测试数据,以对待测系统进行压测。
Spark集群可以在压测应用的指示下,从终端获取待测系统,并通过待测系统并发处理至少两个子数据集中的测试数据,以对待测系统进行压测。
Spark集群中的服务器可以通过foreachpartition算子根据Spark集群中服务器的处理器将子数据集分配至服务器上,已对待测系统进行压测。
步骤610,服务器集群获取压测数据。
在压测结束后,Spark集群可以获取压测数据,压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。
步骤611,服务器集群向终端发送压测数据。
在压测结束后,Spark集群中的工作追踪器可以向终端发送压测数据。压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。终端可以获取Spark集群反馈的压测数据,并根据该压测数据判断待测系统是否可以满足实际需求。
使用本申请实施例提供的压测方法,服务器集群不仅可以根据压测应用实现压测,服务器集群还可以实现大数据分析等其他任务,相较于相关技术而言,提高了服务器集群中服务器资源的利用率。且使用本申请实施例提供的压测方法,对于不同的待测系统,仅提供该待测系统对应的数据集即可实现对不同待测系统的压测。
综上所述,本申请实施例提供了一种压测方法,该压测方法通过确定并发度,并生成服务器集群对应的压测应用,将压测应用于并发度发送至服务器集群,进行压测后获取服务器集群反馈的压测数据,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
在一个示例性实施例中,终端可以获取初始数据集。终端可以对初始数据集进行数据清洗,得到数据集,该数据集可以存储在存储系统中或文本文件中。终端可以将待测系统的数据集中测试数据的份数与Spark集群中服务器的并发处理份数的商确定为压测时的最少服务器数量。终端可以根据压测时最少服务器数量以及服务器中处理器的数量的积确定为并发度。终端可以生成压测应用,并对压测应用进行压缩,得到jar压缩应用。终端可以向Spark集群发送压缩应用以及并发度。其中并发度记录在压缩应用中。
上述为压测应用的准备步骤,以下为Spark集群根据压测应用进行压测的步骤。
Spark集群在接收到压测应用后,当压测开始时,服务器可以根据终端发送的压测应用中的并发度将待测系统的数据集中的测试数据分为至少两个子数据集。每个子数据集可以分别由Spark集群中单个服务器中的处理器进行处理。Spark集群中的服务器可以从终端获取待测系统,并通过待测系统并发处理至少两个子数据集中的测试数据,以对待测系统进行压测。在压测结束后,Spark集群可以获取压测数据,压测数据可以包括Spark集群对待测系统的服务请求次数,待测系统的响应时间以及待测系统的响应结果。在压测结束后,Spark集群中的工作追踪器可以向终端发送压测数据。终端可以获取Spark集群反馈的压测数据,并根据该压测数据判断待测系统是否可以满足实际需求。
图7是本申请实施例提供的一种压测装置的框图。参考图7可以看出,该压测装置700可以包括:
确定模块701,用于根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,并发度用于指示服务器集群将数据集中的测试数据分成至少两个子数据集。
生成模块702,用于生成服务器集群对应的压测应用,压测应用用于指示服务器集群通过待测系统并发处理至少两个子数据集以对待测系统进行压测,并反馈压测数据。
发送模块703,用于向服务器集群发送压测应用以及并发度。
获取模块704,用于获取服务器集群反馈的压测数据。
综上所述,本申请实施例提供了一种压测装置,该压测装置通过确定并发度,并生成服务器集群对应的压测应用,将压测应用于并发度发送至服务器集群,进行压测后获取服务器集群反馈的压测数据,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
可选地,确定模块701包括:
第一确定子模块,用于根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定压测时的最少服务器数量。
第二确定子模块,用于根据最少服务器数量以及服务器中处理器的数量确定并发度。
可选地,第一确定子模块还用于:
将待测系统的数据集中测试数据的份数与服务器集群中单个服务器的并发处理份数的商确定为压测时的最少服务器数量。
第二确定子模块还用于:
将最少服务器数量与服务器中处理器的数量的积确定为并发度。
可选地,生成模块702还用于:
生成压测应用,压测应用用于指示服务器集群读取数据集,并将数据集中的测试数据的格式转换为服务器集群对应的格式,再将格式转换后的数据集根据并发度分为至少两个子数据集,且并发处理至少两个子数据集以对待测系统进行压测。
可选地,发送模块703还用于:
对压测应用进行压缩,得到压缩应用。
向服务器集群发送压缩应用以及并发度。
可选地,压测装置700还包括:
数据集获取模块,用于获取初始数据集。
清洗模块,用于对初始数据集进行数据清洗,得到数据集。
图8是本申请实施例提供的另一种压测装置的框图。参考图8可以看出,该压测装置800可以包括:
接收模块801,用于接收终端发送的压测应用以及并发度。
划分模块802,用于根据并发度将待测系统的数据集分为至少两个子数据集。
压测模块803,用于根据压测应用,通过待测系统并发执行至少两个子数据集中的测试数据,以对待测系统进行压测。
数据获取模块804,用于获取压测数据。
数据发送模块805,用于向终端发送压测数据。
综上所述,本申请实施例提供了一种压测装置,该压测装置可以根据终端发送的并发度对待测系统的数据集进行划分,并在执行压测后将压测数据发送至终端,如此便能较为简便地获取服务器集群反馈的压测数据,且无需使用压测专用的服务器集群,任一服务器均可作为进行压测任务的服务器,达到了提高资源利用率的效果。
图9是本申请实施例提供的一种压测装置900的结构示意图,该压测装置900可以为服务器。示例地,如图9所示,该压测装置900包括中央处理单元(Central ProcessingUnit,CPU)901、存储器902,以及连接存储器902和中央处理单元901的系统总线903,存储器902可以包括诸如硬盘或者紧凑型光盘只读储存器(Compact Disc Read-Only Memory,CD-ROM)之类的计算机可读介质(未示出)。
不失一般性,计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦写可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。
上述存储器902还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行,以实现本申请实施例提供的压测方法。
本申请实施例还提供了一种压测设备,该压测设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述方法实施例所提供的压测方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由处理器加载并执行以实现如上述方法实施例所提供的压测方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例提供的压测方法,使得该计算机设备部署上述任一实施例提供的压测装置。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种压测方法,其特征在于,所述方法包括:
根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,所述并发度用于指示所述服务器集群将所述数据集中的测试数据分成至少两个子数据集;
生成所述服务器集群对应的压测应用,所述压测应用用于指示所述服务器集群通过所述待测系统并发处理所述至少两个子数据集以对所述待测系统进行压测,并反馈压测数据;
向所述服务器集群发送所述压测应用以及所述并发度;
获取所述服务器集群反馈的所述压测数据。
2.根据权利要求1所述的方法,其特征在于,所述根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,包括:
根据所述待测系统的数据集中测试数据的份数以及所述服务器集群中单个服务器的并发处理份数确定压测时的最少服务器数量;
根据所述最少服务器数量以及所述服务器中处理器的数量确定所述并发度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待测系统的数据集中测试数据的份数以及所述服务器集群中单个服务器的并发处理份数确定压测时的最少服务器数量,包括:
将所述待测系统的数据集中测试数据的份数与所述服务器集群中单个服务器的并发处理份数的商确定为所述压测时的最少服务器数量;
所述根据所述最少服务器数量以及所述服务器中处理器的数量确定所述并发度,包括:
将所述最少服务器数量与所述服务器中处理器的数量的积确定为所述并发度。
4.根据权利要求1所述的方法,其特征在于,所述生成所述服务器集群对应的压测应用,包括:
生成所述压测应用,所述压测应用用于指示所述服务器集群读取所述数据集,并将所述数据集中的测试数据的格式转换为所述服务器集群对应的格式,再将格式转换后的数据集根据所述并发度分为所述至少两个子数据集,且并发处理所述至少两个子数据集以对所述待测系统进行压测。
5.根据权利要求1所述的方法,其特征在于,所述向所述服务器集群发送所述压测应用以及所述并发度,包括:
对所述压测应用进行压缩,得到压缩应用;
向所述服务器集群发送所述压缩应用以及所述并发度。
6.根据权利要求1所述的方法,其特征在于,所述根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度之前,所述方法还包括:
获取初始数据集;
对所述初始数据集进行数据清洗,得到所述数据集。
7.一种压测方法,其特征在于,所述方法包括:
接收终端发送的压测应用以及并发度;
根据所述并发度将待测系统的数据集分为至少两个子数据集;
根据所述压测应用,通过所述待测系统并发执行所述至少两个子数据集中的测试数据,以对所述待测系统进行压测;
获取压测数据;
向所述终端发送所述压测数据。
8.一种压测装置,其特征在于,所述压测装置包括:
确定模块,用于根据待测系统的数据集中测试数据的份数以及服务器集群中单个服务器的并发处理份数确定并发度,所述并发度用于指示所述服务器集群将所述数据集中的测试数据分成至少两个子数据集;
生成模块,用于生成所述服务器集群对应的压测应用,所述压测应用用于指示所述服务器集群通过所述待测系统并发处理所述至少两个子数据集以对所述待测系统进行压测,并反馈压测数据;
发送模块,用于向所述服务器集群发送所述压测应用以及所述并发度;
获取模块,用于获取所述服务器集群反馈的所述压测数据。
9.一种压测设备,其特征在于,所述压测设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的压测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的压测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582808.0A CN113835991A (zh) | 2020-06-23 | 2020-06-23 | 压测方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582808.0A CN113835991A (zh) | 2020-06-23 | 2020-06-23 | 压测方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113835991A true CN113835991A (zh) | 2021-12-24 |
Family
ID=78964309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010582808.0A Pending CN113835991A (zh) | 2020-06-23 | 2020-06-23 | 压测方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835991A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564374A (zh) * | 2022-02-21 | 2022-05-31 | 北京百度网讯科技有限公司 | 算子性能评估方法、装置、电子设备及存储介质 |
-
2020
- 2020-06-23 CN CN202010582808.0A patent/CN113835991A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564374A (zh) * | 2022-02-21 | 2022-05-31 | 北京百度网讯科技有限公司 | 算子性能评估方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341098B (zh) | 软件性能测试方法、平台、设备及存储介质 | |
CN109062780B (zh) | 自动化测试用例的开发方法及终端设备 | |
US20190310985A1 (en) | Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources | |
CN105468720A (zh) | 集成分布式数据处理系统的方法、相应系统及其数据处理方法 | |
CN108573029B (zh) | 一种获取网络访问关系数据的方法、装置及存储介质 | |
CN111563014A (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
JP2016100006A (ja) | パフォーマンス試験のためのベンチマーク・アプリケーションを生成する方法および装置 | |
CN106682167B (zh) | 用户行为数据的统计装置及方法 | |
CN111241073A (zh) | 一种数据质量检查方法及装置 | |
CN110928851A (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN110704445B (zh) | 工业数据湖系统 | |
CN110909060B (zh) | 数据报送方法和系统 | |
CN111046245A (zh) | 多源异构数据源融合计算方法、系统、设备和存储介质 | |
CN113835991A (zh) | 压测方法、装置、设备及计算机可读存储介质 | |
CN112199443B (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN107092556B (zh) | 测试方法、装置及设备 | |
CN117539754A (zh) | 压力测试方法、装置、存储介质及电子设备 | |
CN111176827B (zh) | 一种数据预热的方法及相关装置 | |
CN108363671B (zh) | 一种接口切换的方法、终端设备及存储介质 | |
CN114721638A (zh) | 一种查询逻辑代码生成方法及装置 | |
CN114942878A (zh) | 互联网应用的自动化性能测试方法及相关设备 | |
CN113448985A (zh) | 一种api接口生成方法、调用方法、装置及电子设备 | |
CN113535575A (zh) | 软硬件产品基础环境的基准测试方法及装置 | |
CN106815106B (zh) | 主机接口测试方法、装置、测试终端及系统 | |
CN113360182A (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 |