CN111737097B - 一种流处理***的性能测试方法及相关装置 - Google Patents
一种流处理***的性能测试方法及相关装置 Download PDFInfo
- Publication number
- CN111737097B CN111737097B CN202010505325.0A CN202010505325A CN111737097B CN 111737097 B CN111737097 B CN 111737097B CN 202010505325 A CN202010505325 A CN 202010505325A CN 111737097 B CN111737097 B CN 111737097B
- Authority
- CN
- China
- Prior art keywords
- stream processing
- test
- processing system
- data
- load data
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 250
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000011056 performance test Methods 0.000 title abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 195
- 238000007619 statistical method Methods 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 12
- 230000002776 aggregation Effects 0.000 claims description 18
- 238000004220 aggregation Methods 0.000 claims description 18
- 230000000007 visual effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 19
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 12
- 238000005111 flow chemistry technique Methods 0.000 description 10
- 238000010998 test method Methods 0.000 description 6
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3433—Recording 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 for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3452—Performance evaluation by statistical analysis
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种流处理***的性能测试方法,包括:根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;根据各个配置文件控制流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;对所有流处理结果进行统计分析处理,得到测试结果。通过流处理***加载到不同的随机负载数据,然后再根据配置文件进行流处理,得到流处理结果,最后统计分析得到测试结果,避免具体业务读测试过程产生影响,实现统一化测试,提高测试结果准确性,更具参考价值。本申请还公开了一种流处理***的性能测试装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种流处理***的性能测试方法、性能测试装置、服务器以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,在数据处理领域中出现了越来越多的数据种类,均需要采用不同的数据处理***进行处理。在各种数据处理***中就包括流处理***,流处理***是针对无穷数据的处理。它的数据源可以认为是持续不停的产生数据。流处理***对这些源源不断到来的数据进行一系列变换或者聚合操作。流处理是一种重要的大数据处理手段,其主要特点是其处理的数据是源源不断且实时到来的。
其中,数据流通常被定义为不断到达的元组所构成的无限数据集,或是一个连续、无界、顺序、时变的元组序列,对它的应用大多是监控型的,即持续运行在连续数据流上的连续查询。在传统数据库***中,其处理的对象是持久的关系,接受的是及时的查询,查询计划是固定的,查询执行模式是随机访问数据库并且可以对其多遍扫描,应用没有实时性要求,数据以“拉”的形式来传送。而在数据流***中,处理的对象是暂态的流,注册的是连续查询,查询计划需要不断调整以适应新的数据,查询执行模式只能是顺序的一遍扫描数据,应用具有实时性要求,并且数据传送是以“推”的方式进行的。
当前为了保持流处理***的可靠性和稳定性,需要对其进行性能测试操作。现有技术中,流处理***性能测试多为基于实际业务的测试,测试方法和步骤不统一,测试过程包含的业务数据或者处理逻辑的复杂度直接影响了性能指标测试结果,降低了测试结果的准确性,缺乏参考价值。
因此,如何提高流处理***的性能测试结果的准确性是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种流处理***的性能测试方法、性能测试装置、服务器以及计算机可读存储介质,通过不同的配置文件进行负载发送处理,以便流处理***加载到不同的随机负载数据,然后再根据配置文件进行流处理,得到流处理结果,最后统计分析得到测试结果,避免具体业务读测试过程产生影响,实现统一化测试,提高测试结果准确性,更具参考价值。
为解决上述技术问题,本申请提供一种流处理***的性能测试方法,包括:
根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
对所有所述流处理结果进行统计分析处理,得到测试结果。
可选的,根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据,包括:
根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
将所述随机负载数据和对应的生成时间进行组合,得到测试消息;
根据所述多个配置文件中的发送间隔、发送线程数以及对应的消息队列将所述测试消息发送至所述流处理***,以便所述流处理***加载到不同的随机负载数据。
可选的,根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果,包括:
根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
对所述测试消息进行时间戳提取,得到对应的随机负载数据;
根据配置文件的数据聚合方式控制所述流处理***对对应的随机负载数据进行流处理,得到所述流处理结果。
可选的,对所有所述流处理结果进行统计分析处理,得到测试结果,包括:
对所有所述流处理结果进行计数统计处理,得到计数统计结果;
对所有所述流处理结果进行可视化统计处理,得到可视化统计结果;
将所述计数统计结果和所述可视化统计结果作为所述测试结果。
本申请还提供一种流处理***的性能测试装置,包括:
负载数据加载模块,用于根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
数据流处理模块,用于根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
结果分析模块,用于对所有所述流处理结果进行统计分析处理,得到测试结果。
可选的,所述负载数据加载模块,包括:
负载数生成单元,用于根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
测试消息获取单元,用于将所述随机负载数据和对应的生成时间进行组合,得到测试消息;
测试消息发送单元,用于根据所述多个配置文件中的发送间隔、发送线程数以及对应的消息队列将所述测试消息发送至所述流处理***,以便所述流处理***加载到不同的随机负载数据。
可选的,所述数据流处理模块,包括:
测试消息获取单元,用于根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
时间戳提取单元,用于对所述测试消息进行时间戳提取,得到对应的随机负载数据;
流处理单元,用于根据配置文件的数据聚合方式控制所述流处理***对对应的随机负载数据进行流处理,得到所述流处理结果。
可选的,所述结果分析模块,包括:
计数统计单元,用于对所有所述流处理结果进行计数统计处理,得到计数统计结果;
可视化统计单元,用于对所有所述流处理结果进行可视化统计处理,得到可视化统计结果;
测试结果单元,用于将所述计数统计结果和所述可视化统计结果作为所述测试结果。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的性能测试方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的性能测试方法的步骤。
本申请所提供的一种流处理***的性能测试方法,包括:根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;对所有所述流处理结果进行统计分析处理,得到测试结果。
通过不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载数据发送处理,使流处理***加载到不同的随机负载数据,然后控制流处理***对随机负载数据进行流处理,得到流处理结果,最后对该流处理结果进行统计分析处理,得到测试结果,实现采用不同的配置文件在统一的测试流程中进行测试,避免了业务数据和业务处理逻辑对测试过程的影响,保持了不同测试数据中的变量控制,提高了不同测试结果之间的可比性,测试结果更加准确,更具参考价值。
本申请还提供一种流处理***的性能测试装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种流处理***的性能测试方法的流程图;
图2为本申请实施例所提供的一种流处理***的性能测试装置的结构示意图。
具体实施方式
本申请的核心是提供一种流处理***的性能测试方法、性能测试装置、服务器以及计算机可读存储介质,通过不同的配置文件进行负载发送处理,以便流处理***加载到不同的随机负载数据,然后再根据配置文件进行流处理,得到流处理结果,最后统计分析得到测试结果,避免具体业务读测试过程产生影响,实现统一化测试,提高测试结果准确性,更具参考价值。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前为了保持流处理***的可靠性和稳定性,需要对其进行性能测试操作。现有技术中,流处理***性能测试多为基于实际业务的测试,测试方法和步骤不统一,测试过程包含的业务数据或者处理逻辑的复杂度直接影响了性能指标测试结果,降低了测试结果的准确性,缺乏参考价值。
因此,本申请提供一种流处理***的性能测试方法,通过不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载数据发送处理,使流处理***加载到不同的随机负载数据,然后控制流处理***对随机负载数据进行流处理,得到流处理结果,最后对该流处理结果进行统计分析处理,得到测试结果,实现采用不同的配置文件在统一的测试流程中进行测试,避免了业务数据和业务处理逻辑对测试过程的影响,保持了不同测试数据中的变量控制,提高了不同测试结果之间的可比性,测试结果更加准确,更具参考价值。
请参考图1,图1为本申请实施例所提供的一种流处理***的性能测试方法的流程图。
本实施例中,该方法可以包括:
S101,根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
本步骤旨在根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据。也就是先根据获取到的不同测试场景的不同变量的多个配置文件生成对应的随机负载数据,然后通过配置文件中对应的消息队列将负载随机数据发送至流处理***中,使流处理***可以加载到不同的随机负载数据。
现有技术中,在针对不同业务的流处理***时,会由于不同的业务数据和不同的业务处理逻辑,在测试的过程中执行不同的测试方法和采用不同的测试数。但是,如果采用不同的测试方式进行测试,没有办法的将不同流处理***的测试结果进行横向比较,可比性较低,导致测试结果的参考价值降低。
因此,本步骤中采用统一的测试过程,在统一的测试过程中采用不同的配置文件实现针对不同的测试场景和不同变量的多个配置文件,对流处理***发送不同的随机负载数据。
此外,本实施例中包括本步骤中将随机负载数据传入流处理***,流处理***的处理结果再传出流处理***的数据流转均是通过消息队列实现,降低不同流处理***之间切换数据传输方式的门槛,以便以统一的方式进行数据的流转,以便从数据流转的过程中实现统一的测试方法。
可选的,本步骤可以包括:
步骤1,根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
步骤2,将随机负载数据和对应的生成时间进行组合,得到测试消息;
步骤3,根据多个配置文件中的发送间隔、发送线程数以及对应的消息队列将测试消息发送至流处理***,以便流处理***加载到不同的随机负载数据。
可见,本可选方案主要是对如何使流处理***加载到不同的随机负载数据进行说明。首先,根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;然后,将随机负载数据和对应的生成时间进行组合,得到测试消息;最后,根据多个配置文件中的发送间隔、发送线程数以及对应的消息队列将测试消息发送至流处理***,以便流处理***加载到不同的随机负载数据。
显然,本可选方案中是通过配置文件中的数据大小、发送间隔、发送线程数、消息队列对随机负载数据的加载过程进行控制,以便在统一的测试流程下应对不同业务的流处理***。
S102,根据各个配置文件控制流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
在S101的基础上,本步骤旨在根据各个配置文件控制流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果。也就是,将各个不同的随机负载数据均通过流处理***进行流处理,得到对应的流处理结果。
具体的,本步骤中根据配置文件对流处理***的流处理过程进行控制。其中,配置文件包括消息队列的名称、接收数据的并发度以及数据聚合方式。其中,消息队列的名称指的是用于接收到随机负载数据,接收数据的并发度指用于接收到数据的并发度,数据聚合方式是指测试场景对应的具体配置。
可选的,本步骤可以包括:
步骤1,根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
步骤2,对测试消息进行时间戳提取,得到对应的随机负载数据;
步骤3,根据配置文件的数据聚合方式控制流处理***对对应的随机负载数据进行流处理,得到流处理结果。
可见,本可选方案主要是流处理***如何对各个随机负载数据进行流处理进行说明。具体的,首先根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;然后,对测试消息进行时间戳提取,得到对应的随机负载数据;最后,根据配置文件的数据聚合方式控制流处理***对对应的随机负载数据进行流处理,得到流处理结果。
在本可选方案中,主要是通过配置文件的消息队列ID和数据聚合方式,对流处理***的流处理过程进行控制,以便应对不同业务的流处理***,提高本实施例性能测试方法的可移植性。
S103,对所有流处理结果进行统计分析处理,得到测试结果。
在S102的基础上,本步骤旨在对所有流处理结果进行统计分析处理,得到测试结果。也就是,对该流处理结果进行统计分析处理,得到信息统计分析的数据,得到测试结果。
其中,统计分析处理的方式可以包括计数统计处理和可视化统计处理。
该可视化统计处理包括直方图统计、折线统计以及坐标***计。
可选的,本步骤可以包括:
步骤1,对所有流处理结果进行计数统计处理,得到计数统计结果;
步骤2,对所有流处理结果进行可视化统计处理,得到可视化统计结果;
步骤3,将计数统计结果和可视化统计结果作为测试结果。
可见,本可选方案主要是对如何进行统计分析处理,得到测试结果。在本可选方案中可以进行的处理包括计数统计处理和可视化统计处理,分别得到计数统计结果和可视化统计结果,最后将计数统计结果和可视化统计结果作为该测试结果。
综上,本实施例通过不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载数据发送处理,使流处理***加载到不同的随机负载数据,然后控制流处理***对随机负载数据进行流处理,得到流处理结果,最后对该流处理结果进行统计分析处理,得到测试结果,实现采用不同的配置文件在统一的测试流程中进行测试,避免了业务数据和业务处理逻辑对测试过程的影响,保持了不同测试数据中的变量控制,提高了不同测试结果之间的可比性,测试结果更加准确,更具参考价值。
以下通过一个更具体的实施例,对本申请提供的一种流处理***的性能测试方法做进一步说明。
本实施例中,该方法主要包括:测试负载数据生成、测试负载数据处理和测试结果统计分析。
其中,测试负载数据生成包括:随机负载生成、定时器、时间记录器、线程池、测试消息生成器以及配置管理器。
其中,随机负载生成的目的是用来模拟真实业务场景下的数据。本实施例使用随机数用于避免因为数据分区,相同或相似数据聚集而引起的数据倾斜问题。每条随机负载数据的大小可以通过配置管理器来设置,需要配置为待测试流处理***将被用于的业务场景每条数据大小的平均值。
其中,定时器用于控制数据生成和发送的频率,进而控制数据的发送速度。基于不同的测试场景,测试***需要配置不同的测试负载数据发送速度。例如吞吐量测试场景,需要数据发送速度非常快,不应成为测试***的瓶颈。因此,不需要设置数据发送的时间间隔,最大化数据发送速度。但是,在延迟测试中相反,不需要这么大的数据量,需要根据实际业务的情况配置数据的发送时间间隔,避免因为数据流量过大造成数据的积压,导致延迟增大,缺乏参考价值。
其中,时间记录器的目的是用来记录测试负载数据产生的时间到测试数据中。以便后续步骤中可以很方便的获取到数据生成的时间。
其中,线程池用于使用多线程的方式发送测试负载数据到流处理***。主要目的是为了提供发送大流量数据的能力,避免在测试过程中数据源成为瓶颈,影响测试结果。
其中,测试消息生成器用于组合上述步骤创建出的随机负载数据和负载数据产生的时间。最终组装成的数据格式如下所示:
[随机负载数据][分隔符][数据产生时间戳]
其中,配置管理器用于通过读取和解析外部配置文件的形式来调整负载数据生成部分的行为。
具体的,包含的配置信息可以包括:负载随机数据的大小、数据发送的间隔时间、数据发送的线程数、消息队列的名称。
可见,通过以上各个模块之间的相互配合,实现了测试负载数据生成的过程,最后通过消息队列将随机负载数据发送至流处理***中,以便该流处理***可以加载到测试用的随机负载数据。其次,当将本性能测试方法应用在不同的流处理***中时,各个模块之间的关系无需进行调整,只需要根据配置文件设置不同的参数即可。实现测试方法不变化的情况适应不同的业务***。
然后,测试负载数据处理包括:时间戳提取器、配置管理器、数据聚合统计器、执行时间记录器。
其中,时间戳提取器用于提取出测试负载数据中包含的时间戳。在上个步骤中随数据发送的时间戳为数据的生成时间。因此在这里***可以获取到测试数据的生成时间。
其中,配置管理器和上一个步骤的功能类似,都是读取同一个配置文件。
此处,获取到的配置可以包括:消息队列的名称(和上述生成测试数据获取的消息队列名称完全一致)、接收数据的并发度(使用前面“数据发送的线程数”这个配置的值,两者需要保持一致)、数据聚合方式。其中,数据聚合方式,需要根据测试场景的不同再具体配置。
其中,数据聚合统计器用于聚合统计测试数据。具体的统计规则由上面的“数据聚合方式”配置项确定。例如测试吞吐量指标的时候,配置聚合方式为单位时间窗口聚合计数统计的方式。
其中,执行时间记录器记录下了某条测试数据到达流处理***到达处理步骤的时刻。在特定测试场景中可用于指标计算。例如该时间减去测试数据生成的时间可以得到数据发送到处理过程的延迟。
可见,通过测试负载数据处理包括的各个模块实现通过配置文件对流处理***的流处理过程进行控制。很显然,测试负载数据处理和测试负载数据生成的过程中,均通过配置文件进行相关的设置,保持测试方法不变的情况下,应对不同的业务的流处理***,使得本实施例可以避免业务数据和业务处理逻辑的不同,而改变性能测试方法,使得可以控制性能测试中的变量,提高各个测试结果之间的可用性。
其中,测试结果统计分析包括:计数统计模块和直方图统计模块。
其中,计数统计模块用于汇总计数类型指标结果,例如吞吐量(条每秒)。除此之外计数统计模块不能简单的只统计计数,需要考虑网络抖动问题及***性能抖动对测试数据造成的影响。计数统计模块从消息队列读取测试结果剔除明显的毛刺后取平均值。为了减小***性能抖动带来的测试误差,测试过程需要持续较长的时间(例如半小时)。统计结果需要额外计算结果波动的指标项(例如标准差)。如果测试结果波动过大(标准差过大),说明这次测试结果可信度较差,需要检查***稳定性之后再次测试。
其中,直方图统计模块可以直观的体现出达成某些条件的数据所占的百分比,例如95%的数据延迟小于多少毫秒,99%的数据延迟小于多少毫秒等。在需要考虑到网络抖动和***性能抖动的测试场景需要使用直方图统计测试结果。则需要考虑流处理***的稳定性,不宜通过取平均值的方式来表现。
为了避免流处理***预热期的性能瓶颈(此时***会进行资源分配,代码实时编译优化等步骤,期间不能体现***的真实性能),直方图统计的数据需要排除测试开始时期产生的结果。例如将前5分钟生成的结果排除,后面的数据因为***已经充分预热,***的性能已进入稳定状态,统计结果是真实可信的。
可见,本实施例通过不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载数据发送处理,使流处理***加载到不同的随机负载数据,然后控制流处理***对随机负载数据进行流处理,得到流处理结果,最后对该流处理结果进行统计分析处理,得到测试结果,实现采用不同的配置文件在统一的测试流程中进行测试,避免了业务数据和业务处理逻辑对测试过程的影响,保持了不同测试数据中的变量控制,提高了不同测试结果之间的可比性,测试结果更加准确,更具参考价值。
下面对本申请实施例提供的一种流处理***的性能测试装置进行介绍,下文描述的一种流处理***的性能测试装置与上文描述的一种流处理***的性能测试方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种流处理***的性能测试装置的结构示意图。
本实施例中,该装置可以包括:
负载数据加载模块100,用于根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
数据流处理模块200,用于根据各个配置文件控制流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
结果分析模块300,用于对所有流处理结果进行统计分析处理,得到测试结果。
可选的,该负载数据加载模块100,可以包括:
负载数生成单元,用于根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
测试消息获取单元,用于将随机负载数据和对应的生成时间进行组合,得到测试消息;
测试消息发送单元,用于根据多个配置文件中的发送间隔、发送线程数以及对应的消息队列将测试消息发送至流处理***,以便流处理***加载到不同的随机负载数据。
可选的,该数据流处理模块200,可以包括:
测试消息获取单元,用于根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
时间戳提取单元,用于对测试消息进行时间戳提取,得到对应的随机负载数据;
流处理单元,用于根据配置文件的数据聚合方式控制流处理***对对应的随机负载数据进行流处理,得到流处理结果。
可选的,该结果分析模块300,可以包括:
计数统计单元,用于对所有流处理结果进行计数统计处理,得到计数统计结果;
可视化统计单元,用于对所有流处理结果进行可视化统计处理,得到可视化统计结果;
测试结果单元,用于将计数统计结果和可视化统计结果作为测试结果。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的性能测试方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的性能测试方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种流处理***的性能测试方法、性能测试装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (6)
1.一种流处理***的性能测试方法,其特征在于,包括:
根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
对所有所述流处理结果进行统计分析处理,得到测试结果;
根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据,包括:
根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
将所述随机负载数据和对应的生成时间进行组合,得到测试消息;
根据所述多个配置文件中的发送间隔、发送线程数以及对应的消息队列将所述测试消息发送至所述流处理***,以便所述流处理***加载到不同的随机负载数据;
根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果,包括:
根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
对所述测试消息进行时间戳提取,得到对应的随机负载数据;
根据配置文件的数据聚合方式控制所述流处理***对对应的随机负载数据进行流处理,得到所述流处理结果。
2.根据权利要求1所述的性能测试方法,其特征在于,对所有所述流处理结果进行统计分析处理,得到测试结果,包括:
对所有所述流处理结果进行计数统计处理,得到计数统计结果;
对所有所述流处理结果进行可视化统计处理,得到可视化统计结果;
将所述计数统计结果和所述可视化统计结果作为所述测试结果。
3.一种流处理***的性能测试装置,其特征在于,包括:
负载数据加载模块,用于根据获取到的不同测试场景和不同变量的多个配置文件和对应的消息队列进行随机负载发送处理,以便流处理***加载到不同的随机负载数据;
数据流处理模块,用于根据各个配置文件控制所述流处理***分别对对应的随机负载数据进行流处理,得到对应的流处理结果;
结果分析模块,用于对所有所述流处理结果进行统计分析处理,得到测试结果;
所述负载数据加载模块,包括:
负载数生成单元,用于根据获取到的不同测试场景和不同变量的多个配置文件中的数据大小生成对应数据大小的随机负载数据;
测试消息获取单元,用于将所述随机负载数据和对应的生成时间进行组合,得到测试消息;
测试消息发送单元,用于根据所述多个配置文件中的发送间隔、发送线程数以及对应的消息队列将所述测试消息发送至所述流处理***,以便所述流处理***加载到不同的随机负载数据;
所述数据流处理模块,包括:
测试消息获取单元,用于根据配置文件的消息队列ID和接收并发度从对应的消息队列获取到测试消息;
时间戳提取单元,用于对所述测试消息进行时间戳提取,得到对应的随机负载数据;
流处理单元,用于根据配置文件的数据聚合方式控制所述流处理***对对应的随机负载数据进行流处理,得到所述流处理结果。
4.根据权利要求3所述的性能测试装置,其特征在于,所述结果分析模块,包括:
计数统计单元,用于对所有所述流处理结果进行计数统计处理,得到计数统计结果;
可视化统计单元,用于对所有所述流处理结果进行可视化统计处理,得到可视化统计结果;
测试结果单元,用于将所述计数统计结果和所述可视化统计结果作为所述测试结果。
5.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1或2所述的性能测试方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1或2所述的性能测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010505325.0A CN111737097B (zh) | 2020-06-05 | 2020-06-05 | 一种流处理***的性能测试方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010505325.0A CN111737097B (zh) | 2020-06-05 | 2020-06-05 | 一种流处理***的性能测试方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737097A CN111737097A (zh) | 2020-10-02 |
CN111737097B true CN111737097B (zh) | 2022-06-07 |
Family
ID=72648295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010505325.0A Active CN111737097B (zh) | 2020-06-05 | 2020-06-05 | 一种流处理***的性能测试方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737097B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532215B (zh) * | 2020-11-30 | 2023-04-25 | 山东浪潮科学研究院有限公司 | 一种多路同步信号发生***、方法、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252483A (zh) * | 2008-04-10 | 2008-08-27 | 北京星网锐捷网络技术有限公司 | 一种交换机的测试***及方法 |
US8131840B1 (en) * | 2006-09-12 | 2012-03-06 | Packet Plus, Inc. | Systems and methods for data stream analysis using embedded design logic |
CN104253723A (zh) * | 2014-09-29 | 2014-12-31 | 电子科技大学 | 基于软硬件协同实现的交换机验证测试的方法及装置 |
CN104391747A (zh) * | 2014-11-18 | 2015-03-04 | 北京锐安科技有限公司 | 一种并行计算方法及装置 |
CN106575248A (zh) * | 2014-05-18 | 2017-04-19 | 周凯 | 性能测试***和方法 |
CN108183840A (zh) * | 2017-12-28 | 2018-06-19 | 天津芯海创科技有限公司 | 交换机性能的验证方法、装置和实现装置 |
CN108683560A (zh) * | 2018-05-15 | 2018-10-19 | 中国科学院软件研究所 | 一种大数据流处理框架的性能基准测试***及方法 |
CN110798371A (zh) * | 2018-08-03 | 2020-02-14 | 青岛威孚测通信息科技有限公司 | 一种私有通信协议的测试方法 |
CN110971483A (zh) * | 2019-11-08 | 2020-04-07 | 苏宁云计算有限公司 | 一种压力测试的方法、装置及计算机*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687765B2 (en) * | 2001-01-16 | 2004-02-03 | International Business Machines Corporation | System, method, and computer program for explicitly tunable I/O device controller |
KR100806488B1 (ko) * | 2006-10-11 | 2008-02-21 | 삼성에스디에스 주식회사 | 대외채널통합 환경에서의 성능 테스트 시스템 및 그 방법 |
-
2020
- 2020-06-05 CN CN202010505325.0A patent/CN111737097B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131840B1 (en) * | 2006-09-12 | 2012-03-06 | Packet Plus, Inc. | Systems and methods for data stream analysis using embedded design logic |
CN101252483A (zh) * | 2008-04-10 | 2008-08-27 | 北京星网锐捷网络技术有限公司 | 一种交换机的测试***及方法 |
CN106575248A (zh) * | 2014-05-18 | 2017-04-19 | 周凯 | 性能测试***和方法 |
CN104253723A (zh) * | 2014-09-29 | 2014-12-31 | 电子科技大学 | 基于软硬件协同实现的交换机验证测试的方法及装置 |
CN104391747A (zh) * | 2014-11-18 | 2015-03-04 | 北京锐安科技有限公司 | 一种并行计算方法及装置 |
CN108183840A (zh) * | 2017-12-28 | 2018-06-19 | 天津芯海创科技有限公司 | 交换机性能的验证方法、装置和实现装置 |
CN108683560A (zh) * | 2018-05-15 | 2018-10-19 | 中国科学院软件研究所 | 一种大数据流处理框架的性能基准测试***及方法 |
CN110798371A (zh) * | 2018-08-03 | 2020-02-14 | 青岛威孚测通信息科技有限公司 | 一种私有通信协议的测试方法 |
CN110971483A (zh) * | 2019-11-08 | 2020-04-07 | 苏宁云计算有限公司 | 一种压力测试的方法、装置及计算机*** |
Non-Patent Citations (5)
Title |
---|
"Benchmarking Distributed Stream Data Processing Systems";Jeyhun Karimov等;《2018 IEEE 34th International Conference on Data Engineering (ICDE)》;20181025;第1507-1518页 * |
"Stream Bench: Towards Benchmarking Modern Distributed Stream Computing Frameworks";Ruirui Lu等;《2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing》;20150202;第69-78页 * |
"流式大数据仿真生成及***性能测试方法的研究";曹旭峰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180315;I138-1079 * |
"流式大数据处理***性能基准测试工具";刘重瑞;《http://ir.iscas.ac.cn/handle/311060/19060?mode=full&submit_simple=Show+full+item+record》;20181231;第3-4节 * |
"面向电网流式数据处理的性能测试平台";覃海等;《计算机***应用》;20160229;第239-243页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111737097A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274095B (zh) | 日志数据处理方法、装置、设备及计算机可读存储介质 | |
CN111177222A (zh) | 模型测试方法、装置及计算设备、存储介质 | |
CN109495291B (zh) | 调用异常的定位方法、装置和服务器 | |
CN113656245A (zh) | 数据的巡检方法、装置、存储介质及处理器 | |
CN111339118A (zh) | 基于Kubernetes的资源变更历史记录方法及装置 | |
CN111737097B (zh) | 一种流处理***的性能测试方法及相关装置 | |
CN112631754A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN113420032A (zh) | 一种日志的分类存储方法及装置 | |
CN110177024B (zh) | 热点设备的监控方法及客户端、服务端、*** | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN112559525B (zh) | 数据检查***、方法、装置和服务器 | |
CN115858326B (zh) | 基于车路协同的性能监控方法、***、存储介质及设备 | |
CN116842090A (zh) | 一种对账***、方法、设备及存储介质 | |
CN116346650A (zh) | 一种can信号处理方法、装置、***及电子设备 | |
CN110633191A (zh) | 实时监控软件***业务健康度的方法和*** | |
CN115664992A (zh) | 网络运行数据的处理方法、装置、电子设备及介质 | |
CN116319948A (zh) | 会话时长计算方法、装置、计算机设备及存储介质 | |
CN114328093A (zh) | 一种基于Hadoop的监控方法、***、存储介质及设备 | |
CN113742099A (zh) | 基于集合的消息消费方法、生产方法、***及存储介质 | |
CN113472881A (zh) | 在线终端设备的统计方法和装置 | |
CN113242151A (zh) | 基于海量网络数据的特定数据提取方法和*** | |
CN113760669A (zh) | 问题数据的告警方法及装置、电子设备、存储介质 | |
CN111111211A (zh) | 游戏数据的上报方法、装置、***、设备及存储介质 | |
CN115168297A (zh) | 绕行日志审计方法及装置 | |
CN108319704B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231120 Address after: Room 2301, No. 395 Linjiang Avenue, Tianhe District, Guangzhou City, Guangdong Province, 510655 (Location: Self made Unit 01) Patentee after: Guangdong Inspur Intelligent Computing Technology Co.,Ltd. Patentee after: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd. Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Patentee before: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd. |