CN117312150A - 一种压力测试的流量调度方法、平台和系统 - Google Patents
一种压力测试的流量调度方法、平台和系统 Download PDFInfo
- Publication number
- CN117312150A CN117312150A CN202311261992.9A CN202311261992A CN117312150A CN 117312150 A CN117312150 A CN 117312150A CN 202311261992 A CN202311261992 A CN 202311261992A CN 117312150 A CN117312150 A CN 117312150A
- Authority
- CN
- China
- Prior art keywords
- flow
- scheduling
- sample
- period
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012360 testing method Methods 0.000 title claims abstract description 39
- 238000009530 blood pressure measurement Methods 0.000 claims abstract description 114
- 230000008859 change Effects 0.000 claims abstract description 68
- 230000000737 periodic effect Effects 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims description 66
- 230000006870 function Effects 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 11
- 238000005096 rolling process Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 18
- 238000001595 flow curve Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供一种压力测试的流量调度方法、平台和系统,涉及压力测试技术领域。该方法的具体实施方式包括:接收一个或多个压测任务;采集与任务执行周期对应的历史周期的流量数据,流量数据包括周期流量变化速率和周期流量值;将目标流量和周期流量变化速率、周期流量值输入预训练的流量调度模型;其中,预训练的流量调度模型以不同流量调度方式和流量调度量下的预测流量与目标流量之差最小为目标函数;响应于压测任务,根据流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。该实施方式能够在任务执行周期之前匹配精准的调度动作,提升压测过程中流量调度的可控性和稳定性,防止流量曲线波动带来的压测风险。
Description
技术领域
本公开涉及压力测试技术领域,尤其涉及一种压力测试的流量调度方法、平台和系统。
背景技术
压测,即压力测试,是指在应用程序、软件等发布前,模拟实际的负载场景对软件系统等进行测试,根据测试过程中返回的实验参数评估应用程序、软件等的性能,以判断是否满足使用要求或者定位异常故障并修复,保证应用程序、软件等发布后的稳定性。
现有的压测过程中,通常由测试人员配置压测参数,发压设备根据压测参数向被测设备发起服务请求,根据被测设备的响应结果,将应用程序、软件等性能指标进行展示,由测试人员观测并评估。
然而,由于压测参数属于人为预估设置,随着计算机技术的快速发展,实际的负载场景变化多样,导致人为预估的方式偏差较大,响应流量波动较大,压测风险攀升,严重的会使得整个压测系统崩溃;而且,压测指标多种多样,人工观测的方式极其容易出现遗漏、延误的情况,导致压测准确度和效率低下。
发明内容
有鉴于此,本公开实施例提供一种压力测试的流量调度方法、平台和系统,能够解决人为预估偏差较大导致响应流量波动较大,压测风险攀升,压测系统崩溃;观测遗漏、延误导致压测准确度和效率低下的问题。
为实现上述目的,根据本公开的一方面,提供了一种压力测试的流量调度方法,所述流量预测方法包括:
接收一个或多个压测任务;其中,所述压测任务包括目标流量和任务执行周期;
采集与所述任务执行周期对应的历史周期的流量数据,所述流量数据包括周期流量变化速率和周期流量值;
将所述目标流量和所述周期流量变化速率、所述周期流量值输入预训练的流量调度模型;其中,所述预训练的流量调度模型以不同流量调度方式和流量调度量下的预测流量与目标流量之差最小为目标函数;
响应于所述压测任务,根据所述流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。
根据本公开的另一方面,提供了一种压力测试的流量调度平台,所述流量调度平台包括:
调度模块,用于接收一个或多个压测任务;其中,所述压测任务包括目标流量和任务执行周期;
调度模块,还用于采集与所述任务执行周期对应的历史周期的流量数据,所述流量数据包括周期流量变化速率和周期流量值;
调度模块,还用于将所述目标流量和所述周期流量变化速率、所述周期流量值输入预训练的流量调度模型;其中,所述预训练的流量调度模型以不同流量调度方式和流量调度量下的预测流量与目标流量之差最小为目标函数;
调度模块,还用于响应于所述压测任务,根据所述流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。
根据本公开的再一方面,提供了一种压力测试的流量调度系统,所述流量调度系统包括:压力测试的流量调度平台和所述服务集群,其中:
所述流量调度平台包括压测控制中心,所述压测控制中心包括所述调度模块、监控模块和熔断模块。
根据本公开的还一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行所述压力测试的流量调度方法。
根据本公开实施例的又一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行所述压力测试的流量调度方法。
本申请实施例中提供的一个或多个技术方案,通过流量调度模型为压测任务提供目标调度方式和对应的目标调度量,流量调度模型的流量调度算法综合历史的流量值和流量变化效率进行加权构建基础流量,再叠加不同调度方式的调度流量差,可以实现在任务执行周期之前匹配精准的调度动作,提升了压测过程中流量调度的可控性和稳定性,防止流量曲线波动带来的压测风险,保证压测最高处流量趋于稳定,为在线流量控制提供了便利,提升压测效率、监控的准确度和实时性,降低容量评估成本,且及时熔断以提升服务集群的可靠性的技术效果。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1示出了根据本公开示例性实施例的压力测试的流量调度方法的流程图;
图2示出了根据本公开示例性实施例的压力测试的流量调度系统的示意图;
图3示出了根据本公开示例性实施例的预训练的流量调度模型的生成方法的流程图;
图4示出了根据本公开示例性实施例的流量调度模型的模型方程的确定方法的流程图;
图5示出了根据本公开示例性实施例的精细调度的服务管理代理的示意图;
图6示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“在本公开实施例中”表示“至少一个实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
压测:即压力测试,是指在既定软件和硬件环境下,模拟软件系统所能承载的最大工作负荷或最大并发量,以帮助测试人员定位软件性能故障或瓶颈。
websocket:是一种在单个TCP(Transmission Control Protocol,即传输控制协议)连接上进行全双工通信的协议,允许服务端主动向客户端推送数据,客户端的浏览器和服务端可创建持久性的连接进行双向数据传输。
平响:即平均响应时间,是指客户端发起请求至接收到服务端返回的响应结果的平均耗时。
可用性:一般指软件服务的可用性,通过服务正常可用的时间和总服务时间的比值确定,总服务时间包括服务正常可用时间和服务异常时间;也可以通过请求可用性表示,请求可用性为正常响应的请求数和总请求数之比。
返回码:软件系统的服务端返回给客户端的响应结果中的状态码,预先在服务端和客户端的交互协议中约定,用于表示成功、失败、重定向等结果。
容量:是指压测过程中各个服务集群的计算资源以及各项性能指标的可用性,包括吞吐量、平响、并发数、CPU使用率、内存使用率、磁盘IO,以评估软件系统是否能满足实际发布后的使用需求。
熔断机制:是指在压测过程中,当压测指标到达设定阈值时,立即停止对应的压测任务的机制。
现有的压测过程中,一方面,需要人工观测业务指标、工程指标等指标,不仅观测效率低下,而且很容易出现漏观测、延误观测等情况,一旦发现容量存在风险,极有可能错误评估压测指标,导致压测结果偏差,压测风险升高;另一方面,受限于用户的使用习惯,被测设备的流量实时动态变化,对应的被测服务的访问流量曲线波动较大,由于现有的压测过程无法精细调节请求流量(比如,压测的目标流量为各个机器的当前流量的3倍,现有的流量调度措施或者只增加至当前流量的2.4倍,无法完成压测目标;或者直接增加至当前流量的6倍导致机器过压崩溃,进而引发服务故障),导致压测调度过程中流量曲线频繁出现压力水位倒退、压测流量高位波动等不良情况。
以下参照附图描述本公开的方案。
图1示出了根据本公开示例性实施例的压力测试的流量调度方法的流程图,如图1所示,本公开的压力测试的流量调度方法包括如下步骤:
步骤S101,接收一个或多个压测任务;其中,所述压测任务包括目标流量和任务执行周期。
在本公开实施例中,本公开的压力测试的流量调度方法由流量调度系统的流量调度平台执行,如图2所示,本公开的流量调度系统包括四层,分别为前端展示/操作层、控制层、数据层和业务层,前三层为流量调度平台,包括前端展示/操作层的web前端和web后端、控制层的压测控制中心、数据层的压测数据库;业务层包括服务集群,用于执行具体的业务服务,其中:
web前端用于与测试人员交互,使得测试人员通过web前端下发压测任务,压测任务包括压力测试所要达到的目标流量、调节阶段数、调节步长、调节速率、压测指标、指标阈值和熔断方式等参数;web前端还用于展示压测控制中心返回的各种压测指标,压测指标可以根据实际的压测需求进行选择性设置,以便于实现压测指标的统一监控,保证压测的稳步运行。其中,下发的方式可以是选择或者输入等。
web后端用于实现web前端和压测控制中心的交互,将web前端下发的压测任务进行序列化处理后传递给压测控制中心,并将压测控制中心返回的各种指标数据渲染后通过web前端进行展示。其中,web后端和压测控制中心的通信协议可以是websocket。
压测控制中心包括调度模块、监控模块、熔断模块和分析模块,调度模块利用流量调度模型响应压测任务,根据目标流量确定适宜的目标调度方式和目标调度量,并按照目标调度方式和目标调度量对业务层的服务集群进行调度;监控模块用于从分析模块中获取压测指标的指标数据返回web后端,以便于web后端渲染并通过web前端展示,从而监控流量调度系统的运行,分析业务层的容量信息,以为熔断模块是否启用提供高效的反馈和准确的数据支持,保证压测的安全进行,比如,压测指标包括平响曲线、响应成功率、状态码等;熔断模块用于根据调度模块的指示对服务集群中的服务实例进行熔断处理,熔断方式可以是将压测任务的目标调度方式和目标调度量回滚;分析模块用于对服务集群返回的结果数据进行处理,生成目标服务的压测指标的指标数据、压测报告等,以便于测试人员进行容量评估。
压测数据库用于存储压测过程中的各种交互数据,以便于压测控制中心的分析模块调取进行分析。
业务层的服务集群用于执行压测控制中心下发的压测任务,实现压力测试的流量调度,由于压测控制中心利用流量调度模型下发压测任务,故而可以降低压测风险,保证压测过程的平稳运行,防止由于用户使用习惯导致的最高处流量波动带来的压测结果偏差。
进一步地,由于压测指标的多种多样,不同的压测指标可能分布于不同的监控平台,因此,为了便于统一掌控全局,监控模块不仅可以采集服务集群返回的数据,还可以对接外部平台,将外部平台的监控数据调取至压测数据库并处理后进行渲染、展示,比如,外部平台可以是使用网络监控、主机监控、日志监控、业务监控等不同监控产品的平台。分析模块在压测结束后,还可获取目标服务在压测过程中的压测数据,对请求流量、平响、可用性、资源利用率等进行回归分析,评估目标服务的容量,生成容量报告并返回。
在本公开实施例中,通过本公开的流量调度系统,包括前后端分离的流量调度平台,将各个模块进行封装,实现系统化、自动化的流量调度,以及监控指标的灵活设置、超阈值的及时熔断,防止了人工观测的效率低下、风控迟滞带来压测风险等问题,可以提升压测效率、准确性和安全性,降低容量评估成本,缩短评估周期。
步骤S102,采集与所述任务执行周期对应的历史周期的流量数据,所述流量数据包括周期流量变化速率和周期流量值。
在本公开实施例中,压测控制中心从压测数据库采集历史周期的流量数据,利用预训练的流量调度模型,根据目标流量和历史周期的周期流量变化速率、周期流量值确定压测任务对应的任务执行周期应满足的待调度流量差,进而根据待调度流量差确定服务集群的调度方式,以满足压测任务的目标流量的要求。其中,历史周期包括历史监控周期和历史业务周期,监控周期的周期单位通常远小于业务周期的周期单位,一个业务周期包括多个监控周期,比如,监控周期为1分钟,业务周期为1天,一个业务周期包括1440个监控周期。
进一步地,任务执行周期的周期单位与监控周期相同,用于精准控制压测任务的调度时间,以通过监控模块渲染的web前端对压测任务的流量调度结果进行监控、观测目标调度方式和目标调度量是否符合目标流量的要求。比如,任务执行周期为07271305,任务执行周期的前3个监控周期分别为07271304、07271303、07271302,任务执行周期对应的业务周期为0727。
步骤S103,将所述目标流量和所述周期流量变化速率、所述周期流量值输入预训练的流量调度模型;其中,所述流量调度模型以不同流量调度方式和流量调度量下的输出流量与目标流量之差最小为目标函数。
在本公开实施例中,在训练阶段,将样本目标流量、样本任务执行周期的前n个样本监控周期的样本周期流量值、样本任务执行周期的前一个样本监控周期的样本周期流量变化速率、与样本任务执行周期对应的前n个样本业务周期的样本周期流量变化速率作为流量调度模型的输入,并将样本流量调度方式和对应的样本流量调度量作为输出,对流量调度模型进行迭代训练,计算流量调度模型的各个模型参数,确定预训练的流量调度模型。其中,模型参数包括监控流量值的第一权重、监控流量变化速率的第二权重和业务流量变化速率的第三权重;n为正整数,即n=1,2,3,…,可以根据实际的模型精度进行选择性设置。
进一步地,在使用阶段,将目标流量、任务执行周期的前n个监控周期的周期流量值、任务执行周期的前一个监控周期的周期流量变化速率、与任务执行周期对应的前n个业务周期的周期流量变化速率作为预训练的流量调度模型的输入,根据预训练的流量调度模型的输出确定达到目标流量的服务集群的目标调度方式和对应的目标调度量。
在本公开实施例中,如图3所示,本公开的预训练的流量调度模型的生成方法包括如下步骤:
步骤S301,获取多个样本压测任务的样本目标流量和样本任务执行周期。
在本公开实施例中,样本目标流量用vo,s表示。
步骤S302,采集各个所述样本任务执行周期的前n个样本监控周期的样本周期流量值、所述样本任务执行周期的前一个样本监控周期的样本周期流量变化速率、与所述样本任务执行周期对应的前n个样本业务周期的样本周期流量变化速率、样本调度方式和样本调度量。
步骤S303,将所述前n个样本监控周期的样本周期流量值、所述前一个样本监控周期的样本周期流量变化速率、所述前n个样本业务周期的样本周期流量变化速率作为输入,所述样本调度方式和对应的样本调度量作为输出,对流量调度模型进行迭代训练;其中,所述流量调度模型的目标函数为样本预测流量和样本目标流量之差最小。
在本公开实施例中,流量调度模型的模型方程为监控流量变化率和第一权重之积、监控流量值和第二权重之积、业务流量变化速率和第三权重之积、不同流量调度方式和不同流量调度量下的调度流量差四者之和计算得到的预测流量,目标函数为预测流量与目标流量之差最小,在预测流量与目标流量之差最小时,即表示对应的流量调度方式和流量调度量是最优的。
步骤S3031,将所述前n个样本监控周期的样本周期流量值、所述前一个样本监控周期的样本周期流量变化速率、所述前n个样本业务周期的样本周期流量变化速率输入所述流量调度模型的模型方程,确定所述样本压测任务的样本预测流量。
在本公开实施例中,如图4所示,本公开的流量调度模型的模型方程的确定方法包括如下步骤:
步骤S401,根据待预测周期的前n个监控周期的周期流量值、所述待预测周期的前一个监控周期的周期流量变化速率、所述待预测周期的前n个业务周期的周期流量变化速率,计算监控流量值、监控流量变化速率和业务流量变化速率。
在本公开实施例中,待预测周期用t表示,待预测周期t的前n个监控周期(t-1)、(t-2)、…、(t-n)的周期流量值分别用vt-1、vt-2、…、vt-n表示,待预测周期t的前一个监控周期(t-1)的周期流量变化速率用θt-1表示,与待预测周期t对应的业务周期用T表示,与待预测周期t对应的前n个业务周期(T-1)、(T-2)、…、(T-n)的周期流量变化速率分别用θT-1、θT-2、…、θT-n表示。
步骤S4011,根据所述前n个监控周期的样本周期流量值和各个监控周期的流量权重,计算所述监控流量值。
在本公开实施例中,监控流量值vt,monitor为前n个监控周期(t-1)、(t-2)、…、(t-n)的周期流量值vt-1、vt-2、…、vt-n和对应的监控周期的流量权重ηt-1、ηt-2、…、ηt-n之积的总和,如下式(1)所示:
vt,monitor=ηt-1·vt-1+ηt-2·vt-2+…+ηt-n·vt-n (1)
上式中:
ηt-n表示第(t-n)个监控周期的周期流量值vt-n的流量权重,可以根据实际的压测需求进行选择性设置。
步骤S4012,将所述前一个监控周期的周期流量变化速率作为所述监控流量变化速率。
在本公开实施例中,将前一个监控周期(t-1)的周期流量变化速率θt-1作为监控流量变化速率,同样用θt-1表示。
步骤S4013,根据所述前n个业务周期的周期流量变化速率和各个业务周期的变化速率权重,计算所述业务流量变化速率。
在本公开实施例中,业务流量变化速率θT,service为前n个业务周期(T-1)、(T-2)、…、(T-n)的周期流量变化速率θT-1、θT-2、…、θT-n和对应的业务周期的变化速率权重ηT-1、ηT-2、…、ηT-n之积的总和,如下式(2)所示:
θT,service=ηT-1·θT-1+ηT-2·θT-2+…+ηT-n·θT-n (2)
上式中:
ηT-n表示第(T-n)个业务周期的周期流量变化速率θT-n的变化速率权重,可以根据实际的压测需求进行选择性设置。
步骤S402,逐个计算不同的流量调度方式在不同的流量调度量下的调度流量差。
在本公开实施例中,调度流量差用Δvi,j,i=1,2,3、j=1,2,…,k表示,在使用过程中,由流量调度平台对服务集群进行在线调度,以完成压测任务的目标流量。流量调度方式包括切流调度(用i=1表示)、屏蔽调度(用i=2表示)和精细调度(用i=3表示),切流调度的流量调度量为机房的切断个数(用j=1表示)或者重启个数(用j=2表示),屏蔽调度的流量调度量为服务实例的屏蔽个数(用j=3表示)或者取消个数(用j=4表示),精细调度的流量调度量为启用的服务实例的实例标识(用j=5表示)。
进一步地,切流调度是指流量在机房之间切换,服务集群以双活机房的形式提供,一个机房内布置有多个服务实例,两个机房的布置完全相同,直接切断其中一个机房可以将另一个机房中的服务实例的流量提高一倍,或者将切断的机房重新启用可以将两个机房中的服务实例的流量降低一半,通过计算不同切断个数或者重启个数的机房可服务的流量,确定调度流量差。屏蔽调度是指屏蔽或者取消屏蔽部分服务实例,服务集群以多个无差别服务实例的形式提供,屏蔽部分服务实例时,剩余服务实例的流量平均分担被屏蔽的服务实例的流量,提高屏蔽个数除以剩余个数之商的倍数;取消屏蔽部分或者全部服务实例时,服务实例的流量相应降低,通过计算不同屏蔽个数或者取消个数的服务集群可服务的流量,确定调度流量差。精细调度是指根据服务实例的服务权重确定服务实例启用与否,调度模块存储了服务集群中各个服务实例的服务权重,服务权重高的服务实例可服务的流量高、服务权重低的服务实例可服务的流量低,通过选取不同组合的服务权重,计算不同组合的权重之和,确定调度流量差。
更进一步地,切流调度的机房个数可以根据实际需要进行选择性设置,比如,多机房的形式。服务集群中各个服务实例的服务权重可以根据实际的压测需求进行选择性设置,以达到服务集群的流量比例精细化调节的目的。比如,服务集群包括5个服务实例,5个服务实例的服务权重分别为增加或者减少600个服务请求、增加或者减少250个服务请求、增加或者减少130个服务请求、增加或者减少10个服务请求、增加或者减少10个服务请求。
在本公开实施例中,不同的流量调度方式各有特点,切流调度在容量管理尤其是故障止损等场景中使用便利度高,灵活性强,可以保证业务的连续性,属于高效、大粒度的流量调度方式;屏蔽调度使用简单,仅需调度模块记录各个服务实例的屏蔽状态,执行屏蔽或者取消屏蔽操作,属于高效、中粒度的流量调度方式;精细调度属于高效、小粒度的流量调度方式。
步骤S403,分别计算所述监控流量值和第一权重之积、所述监控流量变化速率和第二权重之积、所述业务流量变化速率和第三权重之积,求得三积之和,利用所述三积之和与所述调度流量差,确定所述流量调度模型的模型方程。
在本公开实施例中,分别计算监控流量值vt,monitor和第一权重β1之积一β1vt,monitor、监控流量变化速率θt-1和第二权重β2之积二β2θt-1、业务流量变化速率θT,service和第三权重β3之积三β3θT,service,流量调度模型的模型方程即为积一、积二、积三之和与调度流量差Δvi,j之和,表示不同流量调度方式在不同流量调度量下的预测流量vt,如下式(3)所示:
vt=Δvi,j+β1vt,monitor+β2θt-1+β3θT,service,β1+β2+β3=1 (3)
上式中:
β1表示监控流量值vt,monitor的第一权重,β2表示监控流量变化速率θt-1的第二权重,β3表示、业务流量变化速率θT,service的第三权重;其中,第一权重β1、第二权重β2和第三权重β3之和为1。
在本公开实施例中,通过本公开的流量调度模型的确定方法,采用加权思想,综合了待预测周期之前的前一监控周期的流量值确定监控流量值、前几个监控周期的流量变化速率确定监控流量变化速率以及前几个业务周期的流量变化速率作为基础的影响因素,在基础之上添加不同流量调度方式的调度差,可以准确地反映流量的当前状态和变化趋势,预测最终的实际流量,进而后续和目标流量进行对比,迭代训练确定最优的流量调度模型。
步骤S3032,根据所述样本目标流量和所述样本预测流量之差的最小值,确定所述流量调度模型的目标函数。
在本公开实施例中,样本预测流量用vt,s表示,流量调度模型的目标函数如下式(4)所示:
min|vo,s-vt,s| (4)
步骤S3033,将所述样本调度方式和对应的样本调度量作为输出,对所述流量调度模型进行迭代训练。
步骤S304,根据所述迭代训练的训练结果,确定所述预训练的流量调度模型。
在本公开实施例中,根据式(3)和式(4)可知,在训练过程中,在各种样本调度方式的样本调度量下的样本调度流量差样本监控流量值、样本监控流量变化速率、样本业务流量变化速率为求解的模型方程中的已知项,第一权重β1、第二权重β2和第三权重β3为未知项,根据目标函数迭代训练即可求出第一权重β1、第二权重β2和第三权重β3的权重值,从而得到预训练的流量调度模型,以便后续使用过程中,匹配压测任务最适宜的目标调度方式和目标调度量。
在本公开实施例中,通过本公开的预训练的流量调度模型的生成方法,将样本目标流量和样本预测流量之差最小为目标函数(即损失函数),迭代训练以确定最终的流量调度模型用于使用,为压测任务推荐最优的目标调度方式和目标调度量,防止现有的过小调节无法实现流量目标或者过压导致的崩溃,保证压测的平稳流量曲线,提升压测效率、尽快获得软件系统所能承载的最大工作负荷或最大并发量。
步骤S104,响应于所述压测任务,根据所述流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。
在本公开实施例中,目标调度方式可能多种多样,测试人员可以根据需要选择适宜的调度方式,比如,服务集群包括5个服务实例,目标调度方式为精细调度,目标调度量为服务实例1的服务权重为0.7、服务实例2的服务权重为0.3,那么,将用户请求的70%发送给服务实例1、30%发送给服务实例2。
进一步地,压测任务还包括调节阶段数和调节速率,流量调度模型的输出还包括目标阶段数和目标速率,使得调度模块根据目标阶段数和目标速率执行目标调度方式的目标调度量的逐步调节。其中,调节阶段数的设置是为了通过逐步调节的方式达到目标流量的稳步调节,防止瞬时直达的调节方式导致的服务崩溃;调节速率是指每个步长增加或者减少的服务实例的个数。
进一步地,或者,如图5所示,精细调度可以通过在流量调度平台和服务集群之间引入服务管理代理的方式实现,服务管理代理设置各个服务实例的服务权重,以按照对应的服务流量进行转发。
在本公开实施例中,监控模块还展示各个服务实例响应压测任务的各种压测指标,熔断模块为了防止压测过程中流量压力过大引发的服务崩溃风险,将各个压测指标与预先配置的指标熔断阈值进行对比,比如,以便保证压测任务的安全执行,。服务实例的平响耗时为150ms,平响指标熔断阈值为100ms,服务实例的平响耗时150ms超过指标熔断阈值100ms,触发熔断事件,将服务实例回滚至调度之前,压测终止,具体地:
将所述压测指标与预设的指标阈值进行对比,判断所述压测指标是否满足对应的所述指标熔断阈值;
在所述压测指标不满足对应的所述指标熔断阈值的情况下,下发熔断指令,将所述目标调度方式对应的各个服务实例按照所述目标调度量进行回滚。
在本公开实施例中,通过本公开的压力测试的流量调度方法,基于流量调度模型确定达到目标流量的目标调度方式和目标调度量,实现目标流量的稳步调节,相较于现有的用户使用习惯不确定带来的流量曲线波动,可以使得压测的流量曲线贴合目标流量,大大提高流量曲线的稳定性,提升压测效果,使得压测过程中压测流量最高处流量趋于稳定,降低压测风险。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
参考图6,现将描述可以作为本公开的服务器或客户端的电子设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
电子设备600中的多个部件连接至I/O接口605,包括:输入单元606、输出单元607、存储单元608以及通信单元609。输入单元606可以是能向电子设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元604可以包括但不限于磁盘、光盘。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMa6设备、蜂窝通信设备和/或类似物。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理。例如,在一些实施例中,图1、图2至图4的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到电子设备600上。在一些实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图1、图2至图4的方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
Claims (11)
1.一种压力测试的流量调度方法,其特征在于,所述流量预测方法包括:
接收一个或多个压测任务;其中,所述压测任务包括目标流量和任务执行周期;
采集与所述任务执行周期对应的历史周期的流量数据,所述流量数据包括周期流量变化速率和周期流量值;
将所述目标流量和所述周期流量变化速率、所述周期流量值输入预训练的流量调度模型;其中,所述预训练的流量调度模型以不同流量调度方式和流量调度量下的预测流量与目标流量之差最小为目标函数;
响应于所述压测任务,根据所述流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。
2.如权利要求1所述的流量调度方法,其特征在于,所述历史周期包括历史业务周期和历史监控周期;确定所述预训练的流量预测模型包括:
获取多个样本压测任务的样本目标流量和样本任务执行周期;
将所述样本任务执行周期的前n个样本监控周期的样本周期流量值、所述样本任务执行周期的前一个样本监控周期的样本周期流量变化速率、所述样本任务执行周期的前n个样本业务周期的样本周期流量变化速率作为输入,样本调度方式和对应的样本调度量作为输出,对流量调度模型进行迭代训练;其中,n为正整数;
根据所述迭代训练的训练结果,确定所述预训练的流量调度模型的模型参数,所述模型参数包括第一权重、第二权重和第三权重。
3.如权利要求2所述的流量调度方法,其特征在于,所述对流量调度模型进行迭代训练,包括:
将所述前n个样本监控周期的样本周期流量值、所述前一个样本监控周期的样本周期流量变化速率、所述前n个样本业务周期的样本周期流量变化速率输入所述流量调度模型的模型方程,确定所述样本压测任务的样本预测流量;
根据所述样本目标流量和所述样本预测流量之差的最小值,确定所述流量调度模型的目标函数;
将所述样本调度方式和对应的样本调度量作为输出,对所述流量调度模型进行迭代训练。
4.如权利要求3所述的流量调度方法,其特征在于,确定所述流量调度模型的模型方程,包括:
根据待预测周期的前n个监控周期的周期流量值、所述待预测周期的前一个监控周期的周期流量变化速率、所述待预测周期的前n个业务周期的周期流量变化速率,计算监控流量值、监控流量变化速率和业务流量变化速率;
逐个计算不同的流量调度方式在不同的流量调度量下的调度流量差;
分别计算所述监控流量值和所述第一权重之积、所述监控流量变化速率和所述第二权重之积、所述业务流量变化速率和所述第三权重之积,求得三积之和,利用所述三积之和与所述调度流量差,确定所述流量调度模型的模型方程。
5.如权利要求4所述的流量调度方法,其特征在于,所述计算监控流量值、监控流量变化速率和业务流量变化速率,包括:
根据所述前n个监控周期的样本周期流量值和各个监控周期的流量权重,计算所述监控流量值;
将所述前一个监控周期的周期流量变化速率作为所述监控流量变化速率;
根据所述前n个业务周期的周期流量变化速率和各个业务周期的变化速率权重,计算所述业务流量变化速率。
6.如权利要求1所述的流量调度方法,其特征在于,所述目标调度方式包括切流调度、屏蔽调度和精细调度,所述切流调度的目标调度量为切断个数或者重启个数、所述屏蔽调度的目标调度量为屏蔽个数或者取消个数、所述精细调度的目标调度量为启用的服务实例的实例标识。
7.如权利要求1所述的流量调度方法,其特征在于,还包括:
将所述服务集群返回的压测指标与预设的指标阈值进行对比,判断所述压测指标是否满足对应的所述指标熔断阈值;
在所述压测指标不满足对应的所述指标熔断阈值的情况下,下发熔断指令,将所述目标调度方式对应的各个服务实例按照所述目标调度量进行回滚。
8.一种压力测试的流量调度平台,其特征在于,所述流量调度平台包括:
调度模块,用于接收一个或多个压测任务;其中,所述压测任务包括目标流量和任务执行周期;
调度模块,还用于采集与所述任务执行周期对应的历史周期的流量数据,所述流量数据包括周期流量变化速率和周期流量值;
调度模块,还用于将所述目标流量和所述周期流量变化速率、所述周期流量值输入预训练的流量调度模型;其中,所述预训练的流量调度模型以不同流量调度方式和流量调度量下的预测流量与目标流量之差最小为目标函数;
调度模块,还用于响应于所述压测任务,根据所述流量调度模型的输出,确定服务集群的目标调度方式和目标调度量。
9.一种压力测试的流量调度系统,其特征在于,所述流量调度系统包括:如权利要求8所述的压力测试的流量调度平台和所述服务集群,其中:
所述流量调度平台包括压测控制中心,所述压测控制中心包括所述调度模块、监控模块和熔断模块。
10.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的压力测试的流量调度方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的压力测试的流量调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311261992.9A CN117312150A (zh) | 2023-09-27 | 2023-09-27 | 一种压力测试的流量调度方法、平台和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311261992.9A CN117312150A (zh) | 2023-09-27 | 2023-09-27 | 一种压力测试的流量调度方法、平台和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117312150A true CN117312150A (zh) | 2023-12-29 |
Family
ID=89261546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311261992.9A Pending CN117312150A (zh) | 2023-09-27 | 2023-09-27 | 一种压力测试的流量调度方法、平台和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312150A (zh) |
-
2023
- 2023-09-27 CN CN202311261992.9A patent/CN117312150A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127799B2 (en) | Methods, systems, and devices for managing, reprioritizing, and suppressing initiated alarms | |
JP5617914B2 (ja) | スループット維持支援システム、装置、方法、及びプログラム | |
WO2018001061A1 (zh) | 降低灾备中心系统切换不可用时间的方法、设备及终端 | |
EP3935503B1 (en) | Capacity management in a cloud computing system using virtual machine series modeling | |
CN113114504B (zh) | 用于分配资源的方法、装置、设备、介质和产品 | |
CN114500339B (zh) | 一种节点带宽监测方法、装置、电子设备及存储介质 | |
CN111865720B (zh) | 用于处理请求的方法、装置、设备以及存储介质 | |
CN113438106B (zh) | 内容分发网络处理方法、装置及电子设备 | |
US9501321B1 (en) | Weighted service requests throttling | |
US20200142746A1 (en) | Methods and system for throttling analytics processing | |
CN117312150A (zh) | 一种压力测试的流量调度方法、平台和系统 | |
CN115890684A (zh) | 一种机器人调度方法、装置、设备及介质 | |
WO2013018376A1 (ja) | システムパラメータ設定支援システム、システムパラメータ設定支援装置のデータ処理方法、およびプログラム | |
CN114415691A (zh) | 一种机器人调度方法、调度平台及系统 | |
CN114363704A (zh) | 视频播放方法、装置、设备以及存储介质 | |
CN113010285A (zh) | 用于处理数据的方法、装置、设备、介质和产品 | |
Chen et al. | Task scheduling in real-time industrial scenarios | |
CN112631843A (zh) | 设备测试方法及装置、电子设备、可读介质、产品 | |
WO2020092852A1 (en) | Methods and system for throttling analytics processing | |
CN113656299B (zh) | 极限qps的确定方法、装置、电子设备及可读存储介质 | |
US20240012733A1 (en) | System and method for quantifying digital experiences | |
US20240086203A1 (en) | Sizing service for cloud migration to physical machine | |
CN112114972B (zh) | 数据倾斜的预测方法及装置 | |
CN113422734B (zh) | 资源分发方法、装置、电子设备以及存储介质 | |
CN115827218A (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 |