CN114924941A - 一种基于管线模型的流式计算场景解决方案性能评估系统及方法 - Google Patents
一种基于管线模型的流式计算场景解决方案性能评估系统及方法 Download PDFInfo
- Publication number
- CN114924941A CN114924941A CN202210575699.9A CN202210575699A CN114924941A CN 114924941 A CN114924941 A CN 114924941A CN 202210575699 A CN202210575699 A CN 202210575699A CN 114924941 A CN114924941 A CN 114924941A
- Authority
- CN
- China
- Prior art keywords
- performance
- load
- unit
- message middleware
- solution
- 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
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000003860 storage Methods 0.000 claims abstract description 74
- 238000012360 testing method Methods 0.000 claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000004088 simulation Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 16
- 230000002452 interceptive effect Effects 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 11
- 238000005265 energy consumption Methods 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 claims description 10
- 238000011161 development Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000002829 reductive effect Effects 0.000 claims description 2
- 238000012935 Averaging Methods 0.000 claims 1
- 238000011056 performance test Methods 0.000 abstract description 7
- 238000004445 quantitative analysis Methods 0.000 abstract description 4
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000009530 blood pressure measurement Methods 0.000 abstract 2
- 230000000694 effects Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011031 large-scale manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010998 test method 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
-
- 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/3414—Workload generation, e.g. scripts, playback
-
- 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/3419—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 by assessing time
-
- 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
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于管线模型的流式计算场景解决方案性能评估系统及方法,属于计算机系统性能评测技术领域。本发明包括实时流式计算的性能测试环境,实时流式计算的性能测试场景,实时流数据的模拟,编写各业务场景的生产者类,准备实时流式计算的测试数据的方式,压测脚本准备,实施实时流式计算的压测过程,输出测试报告,是一个全面而完整的对实时流式计算的性能测试方案。本发明以一个量化的方法指导实施者选择消息中间件、流式计算引擎和存储系统,为流式计算应用构建最优的解决方案,节约解决方案对应的实施成本,避免资源浪费。
Description
技术领域
本发明涉及一种基于管线模型的流式计算场景解决方案性能评估系统及方法,属于计算机系统性能评测技术领域。
背景技术
流式计算、批处理、交互式分析和图计算是大数据技术领域的四种主要计算模式。流式计算引擎与其它三种计算模式相比,其特点是能对外提供持续的低延时、高吞吐的请求响应,目前已经在很多行业如互联网、电商、金融、快递和视频等领域得到了广泛的应用。主流的开源流式计算引擎有Storm、Spark-streaming和Flink,这三种技术既有共同的功能,又有各自独有的特色。一般来讲,一个面向流式计算应用场景的解决方案包括三个组件。这三个组件分别是:(1)消息中间件;(2)流式计算引擎;和(3)存储系统。数据(或请求)在这三个组件间按顺序流动,形成了一个PipeLine(管道结构),相邻两个组件间发生交互并相互影响性能。消息中间件用来接收和临时保存用户提交的服务请求,流式计算引擎从消息中间件中获取请求并执行计算任务,存储系统用于保存计算结果。和多样性的计算引擎一样,消息中间件和存储系统也有多种不同的工具。常用的消息中间件有Kafka、RocketMQ和Pulsar,常用的存储系统有Redis、HBase和Mysql。因此,技术人员在构建面向流式应用的解决方案时,面临着至少27种不同组合。在众多不同的方案中,方案间的性能和成本可能有数倍的差别。除了性能和成本,还要综合考虑方案的可扩展性、能耗和运维成本等多种因素。在大规模资金投入的前提下,任何因素的缺失都可能带来严重的不良后果。因此,在确定最优解决方案前,首先要对各种不同方案进行基准测试和性能优化。
如何为给定的流式计算应用进行准确的性能评估是一个很有挑战的问题。由于成本和数据安全的原因,不可能使用真实的生产环境进行测试,只能在模拟环境对不同解决方案进行测试。在使用模拟环境进行测试时,需要解决以下三个问题分别是:
(1)如何使用模拟程序和数据准确刻画真实的应用场景;
(2)如何分布式网络中多组件交互的复杂场景下进行准确的性能测试;
(3)如何以小规模集群的测试效果预测大规模的生产环境。
准确的基准测试和性能评估方法可以指导实施者构建满足应用需求的高效能解决方案,不准确的测试方法会误导解决方案的构建。可能会导致前期投资成本浪费,中期开发不顺利,后期运维困难等严重的后果。
中国发明专利“202111266696.9,一种应用于实时流式计算的性能测试方法”提出了一种针对流式计算应用的性能测试方法,其特点是通过代码模拟不同的业务场景的数据,并借助压力测试工具完成性能测试。
其不足之处有如下三点:
(1)没有一个量化的方法来进行多种解决方案的选型。例如,如何在两种解决方案中选择一个更优的解决方案。
(2)没有考虑管道结构中消息中间件对流式计算引擎的影响。例如,在某个解决方案中消息中间件是管道结构的性能瓶颈,无论压力测试如何进行,都无法测试出流式计算引擎的真时性能指标。
(3)在压力测试中缺乏对负载的量化定义,例如基本操作、基本操作占比、基本操作的分布等,无法准确的刻画真实的应用场景。
发明内容
本发明要解决的技术问题是提供一种基于管线模型的流式计算场景解决方案性能评估系统及方法,用于解决流式计算场景下大数据系统解决方案技术选型的问题。
一个典型的流式计算场景包含三个大数据组件,分别是消息中间件、流式计算引擎、和存储系统三部分。常用的消息中间件有Kafka、RocketMQ和Pulsar;常用的流式计算引擎有Storm、Spark-streaming和Flink;常用的存储系统有Redis、HBase和Mysql。因此,一个流式计算场景可能涉及几十种不同的解决方案组合。在构建解决方案时,实施者不知道哪一个组合最满足实际应用的要求。本发明的目的是帮助实施者在多个解决方案中选择最优解决方案。
本发明通过三措施达到此目的:
1、一个负载定义、生成、提交机制,使负载可以准确模拟不同的应用场景下的计算特征和数据特征。
2、以流水线方式构建测试环境,模拟真实的流式计算系统的生产环境。
3、综合考虑不同解决方案的性能、成本、能耗、可扩展性等多个指标,以加权求和的量化方法选择最优解决方案。
本发明的技术方案是:一种基于管线模型的流式计算场景解决方案性能评估系统,包括:
交互控制单元,用于为用户提供交互功能,为需要模拟的应用场景配置相匹配的负载,启动压力测试命令,启动指标评价单元对单个解决方案进行评价,对所有解决方案评价完成后,选择其中最优的解决方案。
负载存储单元,用于保存负载的静态描述信息。即通过交互控制单元对一组描述负载的多维属性进行赋值,用于模拟一个真实的应用场景,通过交互控制单元对一组描述负载的多维属性进行赋值,用于模拟一个真实的应用场景。
负载生成单元,从负载存储单元中获取负载的静态描述信息,根据静态描述信息生成一组请求,并将该组请求保存到请求队列单元中。
请求队列单元,用于保存负载生成单元生成的请求。
请求发送单元,包含一组线程,用于从请求队列单元中获取请求,并按照负载指定的发送速度提交到消息中间件。
负载中有一个属性,叫提交速度,例如每秒钟提交1100个请求。负载配置单元保存了这个提交速度的具体值,请求发送单元按这个速度向消息中间件提交请求。此处的负载要从静态和动态两个视角解读。一方面,负载配置单元负载保存静态的配置信息。另一方面,负载生成单元,请求队列,发送单元以动态的方式生成、保存、提交这个负载。
性能指标采集模块,用于采集性能指标,所述性能指标采集模块包括:
消息中间件性能指标采集单元,用于采集消息中间件的平均等待时间、消息中间件的吞吐性能指标。
流式计算引擎性能指标采集单元,用于采集流式计算引擎的平均任务处理时间,流式计算引擎的吞吐指标。
数据库性能指标采集单元,用于采集存储系统的数据插入时延,和系统吞吐性能指标。
性能指标存储单元,用于负责接收并保存来自性能指标采集模块采集并提交的各种性能指标。
还用于存储请求发送单元的执行过程信息,这些信息包括:当前请求提交速度、测试进度。
指标评价单元,用于得到当前模拟的应用场景的解决方案,当完成全部场景的模拟后,从全部的解决方案中选出最优的解决方案,做为最终解决方案。
指标评价单元在请求发送单元发送全部请求,每个组件都变成空闲状态以后才会开始工作。
所述交互控制单元,负载存储单元、负载生成单元、请求队列单元、请求发送单元、性能指标存储单元和指标评价单元可以共同部署在一个压力测试节点上。
所述消息中间件性能指标采集单元部署在消息中间件集群中的任意一个节点上。
所述流式计算引擎性能指标采集单元部署在流式计算引擎集群主节点上。
所述数据库性能指标采集单元部署在分布式存储系统集群主节点上。
所述评估系统中,以压力测试节点、待测试的解决方案中消息中间件、流式计算引擎和存储系统等四个组件在数据流上首尾相连,形成流水线结构。
所述流水线结构是发明的核心内容之一,用于模拟真实的应用部署环境。
基于流式线结构的性能模型,以压力测试节点、消息中间件、流式计算引擎和存储系统等四个组件模拟真实的生产环境。
由压力测试节点驱动整个模拟环境持续运行,请求在四个组件间按顺序流动,任何组件都要持续的从上一个组件获取数据,完成处理,将结果提交给下一个组件。以流式计算引擎为例,从消息中间件获取请求,完成计算,将计算结果保存到存储系统。
流式计算引擎的性能既受到前序组件-消息中间件性能的影响,也受到存储系统性能的影响。
流水线结构的好处就是能够准确的刻画真实的流式计算应用场景,效果是使测试结果更准确,从而选出满足应用场景的最优解决方案。
请求在四个组件间按顺序流动,具体步骤如下:压力测试节点讲请求提交到消息中间件。消息中间件临时保存请求并通知流式计算引擎获取请求,流式计算引擎获取请求,执行该请求并得到计算结果,并将计算结果提交到存储系统。存储系统接收并保存流式计算引擎提交的计算结果。
所述负载由一组可量化的属性定义,用来模拟各种不同的引用场景。
所述属性包括:一组核心操作、核心操作所占的百分比,不同操作在时间上的分布,请求提交的速度,总请求数量。
所述指标评价单元中包含流式计算引擎的性能模型,所述性能模型的输入为以下因素:硬件配置,软件版本,可配置参数,当前负载,上一个组件的干扰。
所述性能模型表示为:
Perf=Model{h,s,c,Wi,Ii-1} (1)
h表示硬件配置、集群节点个数、CPU核心个数、内存大小、磁盘大小或网络带宽。
s表示软件信息、操作系统版本或大数据组件版本。
c表示大数据组件的可配置参数。
Wi表示当前的负载。
Ii-1表示前一个组件对当前组件的干扰。
一种基于管线模型的流式计算场景解决方案性能评估方法,其特征在于:
Step1:为具体的应用场景确定一个负载,确定多个候选解决方案。
Step2:确定一个负载,确定一个解决方案组合。当一个具体的应用场景确定以后,负载就确定下来了,需要用这个负载把所有的解决方案测试一遍。
所述负载用于模拟不同的业务场景,负载的属性为W={核心操作、核心操作的比例、核心操作的概率分布、请求提交速度、总请求数量}。
Step3:对解决方案对应的集群进行初始化。
所述对集群进行初始化,即按照一个具体的解决方案组合为消息中间件、流式计算引擎和存储系统分配三组节点,在每组节点上分别部署消息中间件、流式计算引擎,存储系统,最后分别启动消息中间件集群、流式计算引擎集群,存储系统就集群。
例如,假设当前解决方案涉及的消息中间件、流式计算引擎和存储系统分别是:Kafka、Spark-streaming和HBase。分别为三个集群分配三组节点,每组节点的个数分别为4、5、和6。最后,在第一组节点上不是Kafka安装包,在第二组节点上部署Spark安装包、在第三组节点上部署HBase安装包。
Step4:对负载进行初始化,按照Step1中定义的负载,按所述负载的属性(指定的核心操作、每种操作的比例、操作的分布)生成指定数量的请求,保存在内存中的请求队列单元中,启动一组线程,使线程保持在等待状态。
Step5:压力测试,通知请求发送单元中的线程从请求队列单元中获取请求,按照指定的提交速度将请求写入到消息中间件。
Step6:收集负载信息、性能指标信息、集群资源消耗信息,收集压力测试过程中的各个组件的性能指标和集群资源利用率。
Step7:判断性能指标是否达到最优,若否,则转Step8。若是,则转Step10。
Step8。诊断和排查,在流水线结构环境下,通过对比压力测试节点的提交速度、消息中间、流水计算引擎和存储系统的性能指标,集群资源利用率,来判断解决方案对应的瓶颈。
压力测试节点、消息中间件、流式计算引擎和存储系统都有自己的处理能力,例如每秒钟处理1234个请求。为了测试出流式计算引擎的真实性能,要确保前面的消息中间件和后面的存储系统的处理能力都大于流式计算引擎的处理能力。例如流式计算引擎的处理能力是2050个请求/每秒,消息中间件的处理能力是1580个请求/每秒,存储系统处理能力是2340个请求/每秒,就认为消息中间件是整个流水线的性能瓶颈。
Step9。调整集群大小或修改可配置参数。
如果是调整集群大小,每次增加20%的节点个数。内存和CPU等资源相关的参数每次增加20%。
集群大小调整成功或参数重新配置成功以后,返回Step3,开始对下一个解决方案进行评估,直至全部解决方案完成测试。
Step10:生成测试报告。
所述测试报告的内容包括:
当前负载,消息中间件名称、流式计算引擎名称、存储系统名称。
消息中间件名称、流式计算引擎名称和存储系统名称对应的软件版本号。
消息中间件名称、流式计算引擎名称和存储系统名称对应的节点个数,每个节点的CPU、内存、磁盘和网络配置。
消息中间件名称、流式计算引擎名称和存储系统名称对应的性能指标,包括每秒钟处理的请求数,单个请求消耗的时间。
消息中间件名称、流式计算引擎名称和存储系统名称对应的集群资源利用率,包括CPU、内存、磁盘和网络资源利用率。
Step11:对所有的解决方案进行评价,选出最优的方案,具体为:
每个解决方案对应一组评价指标,如公式(2)所示
MetricV={P,C,E,S,D,M} (2)
所述指标分别为:性能P,成本C,能耗E,可扩展性S,开发难度S、维护成本M。
每个指标都有一个权重,如公式(3)所示,
Weights={Wp,Wc,We,Ws,Wd,Wm} (3)
所述权重分别对应性能Wp,成本Wc,能耗We,可扩展性Ws,开发难度Wd、维护成本Wm,所有权重之和为1。
Solutions={Sol1,Sol2,...,Soli,...Solk} (4)
公式(4)表示所有不同解决方案的集合,每一个解决方案都对应一个具体的消息中间件、流式计算引擎,和存储系统。
使用公式(5)对每个解决方案进行打分。
Score={Wp*P+Wc*C+We*E+Ws*S+Wd*D+Wm*M} (5)
每个解决方案的得分由性能,成本,能耗,开发难度、维护成本等指标和对应的权重加权计算,具体为:
Scoref=Max(Score1,Score2,...,Scorei,...Scorek) (6)
最后选出,得分最高的解决方案,即为最优解决方案。
所述Step5具体包括:
负载信息:压力测试过程中进度和实施提交速度。
消息中间件的性能指标:平均等待时间,系统吞吐。
流式计算引擎性能指标:平均任务处理时间、系统吞吐。
存储系统性能指标:平均时延,系统吞吐。
压力测试节点、消息中间件、流式计算引擎和存储系统在压力测试过程中的资源消耗信息:平均CPU利用率,内存利用率,网络利用率和磁盘利用率。
所述Step6具体为:
判断消息中间件的吞吐是否大于流式计算引擎的吞吐。若消息中间件的吞吐大于流式计算引擎的吞吐,并且满足在压力测试节点提交不断增加时,流式计算引擎的吞吐不再提升但是时延急剧下降,则认定性能指标达到最优。
每确定一个请求提交速度、均会产生一个吞吐指标和一个时延指标。随着提交速度的增加,吞吐和时延各自产生了自己的性能曲线,实线为吞吐,虚线为时延。随着请求速度的增加,吞吐不在增加而时延急剧上升。当吞吐达到最大值时,吞吐和对应的时延即为性能指标。
所述Step8具体为:
Step.8.1关闭消息中间件、流式计算和存储系统集群。
Step.8.2增加或减少三个集群对应的节点个数。
Step.8.3修改集群对应的可配置参数。
Step.8.4重新启动三个集群。
一旦系统的硬件、软件版本、可配置参数确定、负载确定下来,流式计算引擎的性能两个指标-吞吐和时延就已经客观存在。但是,这两个性能指标只能通过准确的性能测试才能得到。为了确保准确的测试出真时的性能指标,必须满足三点:
1、压力测试节点提交负载的速度足够大,大到超过流式计算引擎的实际性能指标。
2、流式计算引擎的前一个组件消息中间件的性能指标一定要高于流式计算引擎的性能指标。否则,消息中间件成为了流水线中的性能瓶颈,导致不能准确测试出流式计算引擎的最大处理能力。
3、流式计算引擎的后一个组件的性能指标一定要高于流式计算引擎的性能指标,存储系统成为性能瓶颈也会导致无法准确测试流式计算引擎的性能指标。
本发明的有益效果是:以一个量化的方法指导实施者选择消息中间件、流式计算引擎和存储系统,为流式计算应用构建最优的解决方案,节约解决方案对应的实施成本,避免资源浪费。
附图说明
图1是本发明的集群部署和步骤流程图;
图2是本发明性能测试的步骤流程图;
图3是本发明流式计算引擎解决方案示意图。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
实施例1:如图1-3所示,由压力测试节点、消息中间件集群、流式计算引擎集群和存储系统集群在数据流上首位相连。
本发明所涉及的交互单元、负载存储单元、指标评价单元、指标存储单元、负载生成单元、请求队列单元和请求发送单元部署在压力测试节点上;消息中间件性能指标采集单元、计算引擎性能采集单元和数据库性能指标采集单元分别部署在消息中间件集群、流式计算引擎集群和存储系统集群上。
确定以交通领域的实时时空查询为例。以三个消息中间件(Kafka、RocketMQ和Pulsar)、三个流式计算引擎(Storm、Spark-streaming和Flink)和三个存储系统(Redis、HBase和Mysql)的不同组合为测试对象。
具体过程如下:
Step1:选择一组消息消息中间件、流式计算引擎、和存储系统的组合,此处以Kafka、Spark-streaming和HBase为例进行描述。
Step2:分别为Kafka、Spark-streaming和HBase分配一组节点作为集群的物理资源,每组包含5个节点;为压力测试节点选取一台配置较高的服务器,32物理核心、128GB内存,2TB硬盘。
Step3:通过bash自动化脚本的方式在第一组节点上部署Kafka集群,在第二组节点上部署Spark-streaming集群,在第三组节点上部署HBase集群。现在在HBase上创建好表格,在Kafka上创建话题和分区。在Spark集群中配置HBase连接信息,使Spark能访问HBase集群;在在Spark集群中配置Kafka连接信息,使Spark集群能访问Kafka集群;在压力测试节点配置Kafka连接信息,使压力测试节点能访问Kafka集群。
Step4:分别启动HBase集群、Spark-streaming集群、Kafka集群和压力测试节点。
Step5通过交互式单元,配置一个负载,保存在负载存储单元中。负载相关的属性取值如表1所示。
表1:负载对应的属性
Step6:通过交互式单元,启动测试过程。负载生成单元从负载存储单元中获取负载配置信息,按属性的要求生成1000万个请求,保存在请求队列单元中。
Step7:请求发送单元初始化32个线程,每个线程都建立到Kafka的连接(线程个数等于压力测试节点核心个数)。每个从请求队列中获取请求,提交到消息中间件。
Step8:指标存储单元接收来自请求发送单元的发送的运行过程,当前进度,实际提交速度等信息;也接收来自部署在三个不同集群的性能指标采集单元发送的性能指标数据和集群资源利用率。
序号 | 特征 | 意义 |
1 | Kafka集群性能指标 | 平均等待时间、系统吞吐 |
2 | Kafka集群资源利用率 | CPU、内存、磁盘和网络利用率 |
3 | Spark集群性能指标 | 单个请求执行时间,系统吞吐 |
4 | Spark集群资源利用率 | CPU、内存、磁盘和网络利用率 |
5 | HBase集群性能指标 | 单个请求执行时间,系统吞吐 |
6 | HBase集群资源利用率 | CPU、内存、磁盘和网络利用率 |
表2:性能指标和集群资源利用率
Step9:观察Spark集群的性能指标,若发现吞吐不在增加、时延急剧上升,并且满足:(1)Kafka处理能力大于Spark集群,(2)HBase处理能力大于Spark集群,则可认定已经准确测试出Spark集群的性能指标。
Step10:在27个解决方案组合中选择另一个组合,重复Step1至Step9,直到所有组合均被测试。
最优解决方案的选择过程如下:
Step10.1:为每个解决方案组合计算性能P,成本C,能耗E,可扩展性S,开发难度D、维护成本M。
Step10.2:分别为以上指标指定对应的权重的取值,性能对应的权重Wp取值为0.3,成本对应的权重Wc的取值为0.2,能耗对应的权重We对应的取值为0.2,可扩展性对应的权重Ws取值为0.1,开发难度对应的权重Wd取值为0.1、维护成本对应的权重Wm取值为0.1
Step10.3:利用公式计算每个解决方案的评分
Score={Wp*P+Wc*C+We*E+Ws*S+Wd*D+Wm*M} (5)
Step10.4:利用公式获取最高分值
Scoref=Max(Score1,Score2,...,Scorei,...Scorek) (6)
Step10.5:确定最高分值对应的解决方案即为交通实时查询场景下的最优解决方案,此处,Kafka、Spark-Streaming和Redis的组合得分最高。
实施例2:如图1-3所示,一种基于管线模型的流式计算场景解决方案性能评估系统包括:
交互控制单元,用于为用户提供交互功能,为需要模拟的应用场景配置相匹配的负载,启动压力测试命令,启动指标评价单元对单个解决方案进行评价,对所有解决方案评价完成后,选择其中最优的解决方案。
负载存储单元,用于保存负载的静态描述信息。
负载生成单元,从负载存储单元中获取负载的静态描述信息,根据静态描述信息生成一组请求,并将该组请求保存到请求队列单元中。
请求队列单元,用于保存负载生成单元生成的请求。
请求发送单元,包含一组线程,用于从请求队列单元中获取请求,并按照负载指定的发送速度提交到消息中间件。
性能指标采集模块,用于采集性能指标,所述性能指标采集模块包括:
消息中间件性能指标采集单元,用于采集消息中间件的平均等待时间、消息中间件的吞吐性能指标。
流式计算引擎性能指标采集单元,用于采集流式计算引擎的平均任务处理时间,流式计算引擎的吞吐指标。
数据库性能指标采集单元,用于采集存储系统的数据插入时延,和系统吞吐性能指标。
性能指标存储单元,用于负责接收并保存来自性能指标采集模块采集并提交的各种性能指标。
指标评价单元,用于得到当前模拟的应用场景的解决方案,当完成全部场景的模拟后,从全部的解决方案中选出最优的解决方案,做为最终解决方案。
所述交互控制单元,负载存储单元、负载生成单元、请求队列单元、请求发送单元、性能指标存储单元和指标评价单元可以共同部署在一个压力测试节点上。
所述消息中间件性能指标采集单元部署在消息中间件集群中的任意一个节点上。
所述流式计算引擎性能指标采集单元部署在流式计算引擎集群主节点上。
所述数据库性能指标采集单元部署在分布式存储系统集群主节点上。
所述负载由一组可量化的属性定义,用来模拟各种不同的引用场景。
所述属性包括:一组核心操作、核心操作所占的百分比,不同操作在时间上的分布,请求提交的速度,总请求数量。
所述指标评价单元中包含流式计算引擎的性能模型,所述性能模型的输入为以下因素:硬件配置,软件版本,可配置参数,当前负载,上一个组件的干扰。
所述性能模型表示为:
Perf=Model{h,s,c,Wi,Ii-1} (1)
h表示硬件配置、集群节点个数、CPU核心个数、内存大小、磁盘大小或网络带宽。
s表示软件信息、操作系统版本或大数据组件版本。
c表示大数据组件的可配置参数。
Wi表示当前的负载。
Ii-1表示前一个组件对当前组件的干扰。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (9)
1.一种基于管线模型的流式计算场景解决方案性能评估系统,其特征在于,包括:
交互控制单元,用于为用户提供交互功能,为需要模拟的应用场景配置相匹配的负载,启动压力测试命令,启动指标评价单元对单个解决方案进行评价,对所有解决方案评价完成后,选择其中最优的解决方案;
负载存储单元,用于保存负载的静态描述信息;
负载生成单元,从负载存储单元中获取负载的静态描述信息,根据静态描述信息生成一组请求,并将该组请求保存到请求队列单元中;
请求队列单元,用于保存负载生成单元生成的请求;
请求发送单元,包含一组线程,用于从请求队列单元中获取请求,并按照负载指定的发送速度提交到消息中间件;
性能指标采集模块,用于采集性能指标,所述性能指标采集模块包括:
消息中间件性能指标采集单元,用于采集消息中间件的平均等待时间、消息中间件的吞吐性能指标;
流式计算引擎性能指标采集单元,用于采集流式计算引擎的平均任务处理时间,流式计算引擎的吞吐指标。
数据库性能指标采集单元,用于采集存储系统的数据插入时延,和系统吞吐性能指标;
性能指标存储单元,用于负责接收并保存来自性能指标采集模块采集并提交的各种性能指标;
指标评价单元,用于得到当前模拟的应用场景的解决方案,当完成全部场景的模拟后,从全部的解决方案中选出最优的解决方案,做为最终解决方案。
2.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估系统,其特征在于:所述交互控制单元,负载存储单元、负载生成单元、请求队列单元、请求发送单元、性能指标存储单元和指标评价单元可以共同部署在一个压力测试节点上。
3.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估系统,其特征在于:
所述消息中间件性能指标采集单元部署在消息中间件集群中的任意一个节点上;
所述流式计算引擎性能指标采集单元部署在流式计算引擎集群主节点上;
所述数据库性能指标采集单元部署在分布式存储系统集群主节点上。
4.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估系统,其特征在于:
所述负载由一组可量化的属性定义,用来模拟各种不同的引用场景;
所述属性包括:一组核心操作、核心操作所占的百分比,不同操作在时间上的分布,请求提交的速度,总请求数量。
5.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估系统,其特征在于:所述指标评价单元中包含流式计算引擎的性能模型,所述性能模型的输入为以下因素:硬件配置,软件版本,可配置参数,当前负载,上一个组件的干扰;
所述性能模型表示为:
Perf=Model{h,s,c,Wi,Ii-1} (1)
h表示硬件配置、集群节点个数、CPU核心个数、内存大小、磁盘大小或网络带宽;
s表示软件信息、操作系统版本或大数据组件版本;
c表示大数据组件的可配置参数;
Wi表示当前的负载;
Ii-1表示前一个组件对当前组件的干扰。
6.一种基于管线模型的流式计算场景解决方案性能评估方法,其特征在于:
Step1:为具体的应用场景确定一个负载,确定多个候选解决方案;
Step2:确定一个负载,确定一个解决方案组合;
所述负载用于模拟不同的业务场景,负载的属性为W={核心操作、核心操作的比例、核心操作的概率分布、请求提交速度、总请求数量};
Step3:对解决方案对应的集群进行初始化;
所述对集群进行初始化,即按照一个具体的解决方案组合为消息中间件、流式计算引擎和存储系统分配三组节点,在每组节点上分别部署消息中间件、流式计算引擎,存储系统,最后分别启动消息中间件集群、流式计算引擎集群,存储系统就集群;
Step4:对负载进行初始化,按照Step1中定义的负载,按所述负载的属性生成指定数量的请求,保存在内存中的请求队列单元中,启动一组线程,使线程保持在等待状态;
Step5:压力测试,通知请求发送单元中的线程从请求队列单元中获取请求,按照指定的提交速度将请求写入到消息中间件;
Step6:收集负载信息、性能指标信息、集群资源消耗信息,收集压力测试过程中的各个组件的性能指标和集群资源利用率;
Step7:判断性能指标是否达到最优,若否,则转Step8;若是,则转Step10;
Step8;诊断和排查,在流水线结构环境下,通过对比压力测试节点的提交速度、消息中间、流水计算引擎和存储系统的性能指标,集群资源利用率,来判断解决方案对应的瓶颈;
Step9;调整集群大小或修改可配置参数;
Step10:生成测试报告;
所述测试报告的内容包括:
当前负载,消息中间件名称、流式计算引擎名称、存储系统名称;
消息中间件名称、流式计算引擎名称和存储系统名称对应的软件版本号;
消息中间件名称、流式计算引擎名称和存储系统名称对应的节点个数,每个节点的CPU、内存、磁盘和网络配置;
消息中间件名称、流式计算引擎名称和存储系统名称对应的性能指标,包括每秒钟处理的请求数,单个请求消耗的时间;
消息中间件名称、流式计算引擎名称和存储系统名称对应的集群资源利用率,包括CPU、内存、磁盘和网络资源利用率;
Step11:对所有的解决方案进行评价,选出最优的方案,具体为:
每个解决方案对应一组评价指标,如公式(2)所示
MetricV={P,C,E,S,D,M} (2)
所述指标分别为:性能P,成本C,能耗E,可扩展性S,开发难度S、维护成本M;
每个指标都有一个权重,如公式(3)所示,
Weights={Wp,Wc,We,Ws,Wd,Wm} (3)
所述权重分别对应性能Wp,成本Wc,能耗We,可扩展性Ws,开发难度Wd、维护成本Wm,所有权重之和为1;
Solutions={Sol1,Sol2,...,Soli,...Solk} (4)
公式(4)表示所有不同解决方案的集合,每一个解决方案都对应一个具体的消息中间件、流式计算引擎,和存储系统。
使用公式(5)对每个解决方案进行打分。
Score={Wp*P+Wc*C+We*E+Ws*S+Wd*D+Wm*M} (5)
每个解决方案的得分由性能,成本,能耗,开发难度、维护成本等指标和对应的权重加权计算,具体为:
Scoref=Max(Score1,Score2,...,Scorei,...Scorek) (6)
最后选出,得分最高的解决方案,即为最优解决方案。
7.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估方法,其特征在于,所述Step5具体包括:
负载信息:压力测试过程中进度和实施提交速度;
消息中间件的性能指标:平均等待时间,系统吞吐;
流式计算引擎性能指标:平均任务处理时间、系统吞吐;
存储系统性能指标:平均时延,系统吞吐;
压力测试节点、消息中间件、流式计算引擎和存储系统在压力测试过程中的资源消耗信息:平均CPU利用率,内存利用率,网络利用率和磁盘利用率。
8.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估方法,其特征在于,所述Step6具体为:
判断消息中间件的吞吐是否大于流式计算引擎的吞吐;若消息中间件的吞吐大于流式计算引擎的吞吐,并且满足在压力测试节点提交不断增加时,流式计算引擎的吞吐不再提升但是时延急剧下降,则认定性能指标达到最优。
9.根据权利要求1所述的基于管线模型的流式计算场景解决方案性能评估方法,其特征在于,所述Step8具体为:
Step.8.1关闭消息中间件、流式计算和存储系统集群;
Step.8.2增加或减少三个集群对应的节点个数;
Step.8.3修改集群对应的可配置参数;
Step.8.4重新启动三个集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210575699.9A CN114924941B (zh) | 2022-05-25 | 2022-05-25 | 一种基于管线模型的流式计算场景解决方案性能评估系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210575699.9A CN114924941B (zh) | 2022-05-25 | 2022-05-25 | 一种基于管线模型的流式计算场景解决方案性能评估系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114924941A true CN114924941A (zh) | 2022-08-19 |
CN114924941B CN114924941B (zh) | 2024-06-07 |
Family
ID=82810070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210575699.9A Active CN114924941B (zh) | 2022-05-25 | 2022-05-25 | 一种基于管线模型的流式计算场景解决方案性能评估系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924941B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180121176A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Development data management for a stream computing environment |
CN109690524A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 分布式事件处理系统中的数据序列化 |
US20190171604A1 (en) * | 2017-10-31 | 2019-06-06 | Micron Technology, Inc. | System Having a Hybrid Threading Processor, a Hybrid Threading Fabric Having Configurable Computing Elements, and a Hybrid Interconnection Network |
CN110716875A (zh) * | 2019-09-26 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种国产办公环境下基于反馈机制的并发测试方法 |
US20200026710A1 (en) * | 2018-07-19 | 2020-01-23 | Bank Of Montreal | Systems and methods for data storage and processing |
CN112102465A (zh) * | 2019-06-18 | 2020-12-18 | 明日基金知识产权控股有限公司 | 基于3d结构引擎的计算平台 |
CN114253941A (zh) * | 2020-09-25 | 2022-03-29 | 罗克韦尔自动化技术公司 | 使用工业信息中心的数据建模和资产管理 |
-
2022
- 2022-05-25 CN CN202210575699.9A patent/CN114924941B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109690524A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 分布式事件处理系统中的数据序列化 |
US20180121176A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Development data management for a stream computing environment |
US20190171604A1 (en) * | 2017-10-31 | 2019-06-06 | Micron Technology, Inc. | System Having a Hybrid Threading Processor, a Hybrid Threading Fabric Having Configurable Computing Elements, and a Hybrid Interconnection Network |
US20200026710A1 (en) * | 2018-07-19 | 2020-01-23 | Bank Of Montreal | Systems and methods for data storage and processing |
CN112102465A (zh) * | 2019-06-18 | 2020-12-18 | 明日基金知识产权控股有限公司 | 基于3d结构引擎的计算平台 |
CN110716875A (zh) * | 2019-09-26 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种国产办公环境下基于反馈机制的并发测试方法 |
CN114253941A (zh) * | 2020-09-25 | 2022-03-29 | 罗克韦尔自动化技术公司 | 使用工业信息中心的数据建模和资产管理 |
Non-Patent Citations (2)
Title |
---|
刘俊;张广兴;曾少华;: "电力数据通信网端到端网络主动测量系统的设计与实现", 计算技术与自动化, no. 03, 15 September 2017 (2017-09-15) * |
杨潇黎;蒋廷耀;金鑫;罗神;: "分布式web日志处理平台的研究与实现", 信息通信, no. 03, 15 March 2019 (2019-03-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN114924941B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110187990B (zh) | 一种基于模式转移的虚拟机混合备用动态可靠性评估方法 | |
US10354201B1 (en) | Scalable clustering for mixed machine learning data | |
Wyatt et al. | Prionn: Predicting runtime and io using neural networks | |
CN110740079B (zh) | 一种面向分布式调度系统的全链路基准测试系统 | |
US20030208284A1 (en) | Modular architecture for optimizing a configuration of a computer system | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及系统 | |
CN107360026B (zh) | 分布式消息中间件性能预测与建模方法 | |
WO2012033909A2 (en) | Method and system of simulating a data center | |
CN107086929B (zh) | 一种基于排队建模的批量流式计算系统性能保障方法 | |
CN108833302B (zh) | 云环境下基于模糊聚类及严格双边匹配的资源分配方法 | |
US7860700B2 (en) | Hardware verification batch computing farm simulator | |
CN110825522A (zh) | Spark参数自适应优化方法及系统 | |
CN116263701A (zh) | 算力网络任务调度方法、装置、计算机设备及存储介质 | |
CN109656723A (zh) | 容器资源调度方法及装置 | |
Wang | Stream processing systems benchmark: Streambench | |
CN113391913A (zh) | 一种基于预测的分布式调度方法和装置 | |
Liu et al. | Failure prediction of tasks in the cloud at an earlier stage: a solution based on domain information mining | |
CN115373836A (zh) | 计算网络、算力度量方法、调度装置及相关产品 | |
CN117573328A (zh) | 基于多模型驱动的并行任务快速处理方法及系统 | |
CN114924941B (zh) | 一种基于管线模型的流式计算场景解决方案性能评估系统及方法 | |
WO2023097661A1 (zh) | 基于生成对抗网络的大数据系统资源配置参数调优方法 | |
CN112860531B (zh) | 基于深度异构图神经网络的区块链广泛共识性能评测方法 | |
Paokin et al. | Approbation of Methods for Supercomputer Job Queue Wait Time Estimation | |
CN114490405A (zh) | 资源需求量确定方法、装置、设备及存储介质 | |
Li et al. | Encoding for reinforcement learning driven scheduling |
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 |