CN115913967A - 一种云环境下基于资源需求预测的微服务弹性伸缩方法 - Google Patents
一种云环境下基于资源需求预测的微服务弹性伸缩方法 Download PDFInfo
- Publication number
- CN115913967A CN115913967A CN202211399352.XA CN202211399352A CN115913967A CN 115913967 A CN115913967 A CN 115913967A CN 202211399352 A CN202211399352 A CN 202211399352A CN 115913967 A CN115913967 A CN 115913967A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- resource demand
- workload
- demand prediction
- 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
-
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种云环境下基于资源需求预测的微服务弹性伸缩方法,所述方法具体包括:S1、基于最近k个时间间隔的工作负载向量来预测下一时间间隔t+1的工作负载Xt+1;S2、将下一时间间隔t+1的工作负载Xt+1及设置的响应时间阈值RTthr输入微服务资源需求预测模型,输出下一时间间隔t+1所需的为服务器容器实例数量cnt+1预测值。与现有被动式响应方法不同,本发明采用主动式预测方法,根据历史工作负载预测今后负载波动情况以预测微服务资源需求量,可以事先扩展或收缩微服务容器实例,从而避免无法及时应对工作负载变化而造成SLO响应时间冲突。同时,通过按需资源的伸缩,提高了资源利用率。
Description
技术领域
本发明属于用云计算领域,更具体地,本发明涉及一种云环境下基于资源需求预测的微服务弹性伸缩方法。
背景技术
当前,云计算平台用于部署应用程序,主要特性包括用户按照资源使用量付费和云服务提供商提供资源动态供应,这对企业和个人用户都具有吸引力。云计算平台的动态资源供应机制为应用程序提供了高效自动伸缩能力,可以有效满足服务级别目标(SLO,Service Level Object)约束条件中的响应时间指标。响应时间是应用程序的关键SLO之一,这是由于响应时间过长会降低应用执行效率,影响用户体验,造成用户流失。因此,保持良好的响应时间,对于在云计算平台托管的应用程序非常重要。
云计算平台使用虚拟化技术来托管应用程序,传统硬件级虚拟化也称为基于虚拟机管理程序的虚拟化,用于管理云数据中心的虚拟机,需要相当长的时间来启动和终止虚拟机。与基于虚拟机的虚拟化相比,操作***级虚拟化的容器技术具有更好的可移植性、轻量级和易伸缩性,适用于管理基于微服务的应用程序,有助于快速启动和终止容器以实现快速可伸缩性。基于微服务架构的云托管应用程序通常以微服务的形式部署在容器中,容器集群的自动伸缩机制,通过调整容器实例的数量以调整微服务分配的资源数量,用来保障大量并发用户请求的响应时间。
现有资源扩展和收缩方法大多采用被动式响应方法。基于规则的自动伸缩方法根据特定事件来为应用程序分配资源。(R.Han,L.Guo,M.M.Ghanem,and Y.Guo,“Lightweightresource scaling for cloud applications,”in Proc.12th IEEE/ACMInt.Symp.Cluster Cloud Grid Comput.,2012,pp.644–651.)(A.Gambi,M.Pezze,andG.Toffetti,“Kriging-based self-adaptivecloud controllers,”IEEE Trans.ServicesComput.,vol.9,no.3,pp.368–381,May2016.)例如,当平均CPU利用率超过特定阈值时,使用事先设定的规则自动增加或减少分配的资源数量。基于性能建模的自动伸缩方法采用机器学习或排队论模型计算在可接受的响应时间内满足工作负载所需的资源数量。(X.Bu,J.Rao,and C.-Z.Xu,“A reinforcement learning approach to online web systemsauto-configuration,”in Proc.29th IEEE Int.Conf.Distrib.Comput.Syst.,2009,pp.2–11.)(R.Moreno-Vozmediano,R.S.Montero,E.Huedo,and I.M.Llorente,“Efficientresource provisioning for elastic cloud services based on machine learningtechniques,”J.Cloud Comput.,vol.8,no.1,Apr.2019,Art.no.5.)然而,自动资源伸缩策略对应用程序的工作负载非常敏感,例如工作负载的突然剧烈变化会导致资源重新分配的操作。
现有方法存在以下问题:(1)现有方法通常采用被动式响应策略,监测到微服务工作负载发生变化才进行资源调整操作,由于在运行过程中的响应延迟,未及时处理会造成响应时间变长,显著增加了SLO响应时间违约的概率。(2)现有方法通常忽略工作负载突发变化的情况,短时间内的工作负载突变会造成响应时间高波动,然而高频增加或减少资源数量的操作会造成较高性能开销,导致应用程序运行不稳定。(3)在云计算环境下的微服务资源管理方面,现有算法和模型具有微服务工作负载及资源需求预测准确性低和适用性差的缺点。
发明内容
本发明提供一种云环境下基于资源需求预测的微服务弹性伸缩方法,旨在改善上述问题。
本发明是这样实现的,一种云环境下基于资源需求预测的微服务弹性伸缩方法,所述方法具体包括:
S1、基于最近k个时间间隔的工作负载向量来预测下一时间间隔t+1的工作负载Xt+1;
S2、将下一时间间隔t+1的工作负载Xt+1及设置的SLO响应时间阈值RTthr输入微服务资源需求预测模型,输出下一时间间隔t+1所需的为服务器容器实例数量cnt+1预测值。
进一步的,微服务资源需求预测模型是基于XGBoost模型构建。
进一步的,微服务资源需求预测模型的构建方法具体包括如下步骤:
S12、构建样本集,将样本集中的样本分为测试集和训练集;
S22、基于训练集对XGBoost模型进行训练,基于测试集对训练后的XGBoost模型进行测试,在XGBoost模型的识别精度达到设定标准后,即形成微服务资源需求预测模型。
进一步的,样本集的构建方法具体如下:
采用工作负载生成器模拟生成用户请求,以设定的步长逐渐线性增加工作负载的并发数量,在微服务中的设定比例的用户请求响应时间超过时间阈值时,则增加一个微服务容器;
每隔T秒记录一次工作负载请求数量及该工作负载请求数量下的微服务容器数量,形成一个样本,放入样本集中。
进一步的,下一时间间隔t+1的工作负载Xt+1的获取方法具体如下:
将最近k个时间间隔的工作负载向量输入微服务工作负载预测模型,微服务工作负载预测模型输出下一时间间隔t+1的工作负载Xt+1。
进一步的,微服务工作负载预测模型是基于Lasso回归算构建。
进一步的,微服务容器实例数量的确定方法具体如下:
进一步的,工作负载表示为:Xt=(x1,x2,…,xi,…,xq),其中xi表示微服务的第i个服务接口的请求数量,服务接口数量为q。
进一步的,基于Lasso回归的工作负载预测过程具体如下:
其中,k表示微服务当前时间以前的时间间隔数量,Xt-j表示第t-j个时间间隔微服务工作负载的实际监测值,wt-j为Xt-j对应的回归系数,α为随机误差项。
与现有采用被动式响应策略的方法相比,本发明具有以下优点:
(1)与现有被动式响应方法不同,本发明采用主动式预测方法,根据历史工作负载预测今后负载波动情况以预测微服务资源需求量,可以事先扩展或收缩微服务容器实例,从而避免无法及时应对工作负载变化而造成SLO响应时间冲突。同时,通过按需资源的伸缩,提高了资源利用率;
(2)通过检测工作负载突发变化的情况,实现渐变式的逐步伸缩微服务容器实例数量,实现资源的平稳调节,降低工作负载突发引起频繁伸缩操作的性能开销,保证微服务应用程序的稳定运行。
(3)在云计算环境下的微服务资源管理方面,将Lasso回归算法和XGBoost算法结合使用,进行微服务工作负载及资源需求预测,具有更高的准确性和更好的适用性。
附图说明
图1为本发明实施例提供的云环境下基于资源需求预测的微服务弹性伸缩方法流程图。
具体实施方式
下面对照附图,通过对实施例的描述,对本发明的具体实施方式作进一步详细的说明,以帮助本领域的技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。
本发明先云计算平台上采用容器化集群方式部署目标微服务应用程序,使用JMeter模拟各种工作负载并记录微服务的工作负载向量、响应时间、容器实例数量;采用XGBoost回归算法,根据工作负载预测以及SLO响应时间约束,预测微服务资源需求量;采用Lasso回归算法,根据历史工作负载准确预测今后工作负载波动情况;通过计算滑动窗口中微服务容器实例数量的均值和标准差,检测工作负载的突变情况并根据策略动态伸缩微服务实例数量,如图1所示。
在云计算平台上,采用容器化集群基础设施,部署由众多微服务组成的基准微服务应用程序,每个微服务实例部署在一个容器中。采用工作负载生成器模拟生成用户请求,并发用户请求数量从1开始,以10为步长,逐渐线性增加工作负载的并发数量,使微服务的响应时间逐渐达到SLO规定的阈值。每当微服务的95%请求响应时间超过阈值200毫秒时,则增加一个微服务容器实例,从而收集足够的性能监测数据以构建目标微服务应用程序的模型训练数据集。
1.数据集的构建
每隔T秒记录一次,在第t个时间间隔内,记录特定工作负载请求数量以及容器数量条件下的性能监测数据,表示为:mt=(cnt,rtt,Xt),其中,cnt为第t个时间间隔的容器数量,rtt表示第t个时间间隔的响应时间,Xt表示第t个时间间隔的工作负载。由于每个工作负载包括对多个服务接口的多次调用,工作负载表示为:Xt=(x1,x2,…,xi,…,xq),其中xi表示微服务的第i个服务接口的请求数量,服务接口数量为q。
2、微服务资源需求预测模型构建
资源需求预测模型的输入为性能监测数据响应时间rtt,工作负载Xt,模型输出为所需的容器实例数量cnt。资源需求预测模型训练的具体步骤如下:
(1)将数据集划分为训练数据集和验证数据集,分成80%的训练数据集和20%的验证数据集。
(2)使用XGBoost算法在测试数据集合上对资源使用量进行建模,训练资源需求预测模型。XGBoost回归是一种监督式机器学习算法,通过构建树结构形式的决策规则模型求解回归问题。与其他机器学习算法相比,XGBoost回归可以用较少的训练数据进行训练,并且不需要归一化数据处理。将决策树逐棵加入到模型中,每增加一棵决策树,使得整体效果有所提升,具体包括以下步骤:
H(ft)是正则化项,用于度量模型的复杂度,避免过拟合:
其中,T为叶结点的数量,wj为第j个叶子结点的权重,r和λ为人工设置的参数。
(3)反复调整模型参数,使用验证数据集实验,得到最优参数,建立最优的资源需求预测模型。
3、微服务工作负载预测模型的构建
对基准微服务应用程序的工作负载变化进行建模,从而预测下个时间间隔的工作负载数量,进而根据工作负载预测值,使用微服务资源需求预测模型预测微服务的资源需求数量。微服务工作负载预测模型输入为监测到的最后k个工作负载多维向量,输出为下一个时间t+1的工作负载Xt+1。
本发明使用Lasso回归算法进行工作负载预测,具有更高的准确性,并且能够在更短的时间内拟合收敛。使用该微服务工作负载预测模型预测目标微服务的工作负载,进而根据微服务资源需求预测模型预测该工作负载所需的微服务容器实例数量。基于Lasso回归的工作负载预测过程具体如下:
其中,k表示该微服务当前时间以前的时间间隔数量,Xt-j表示第t-j个时间间隔微服务工作负载的实际监测值,wt-j为Xt-j对应的回归系数,α为随机误差项。
4、微服务资源弹性伸缩
在微服务应用程序运行过程中,每隔T秒,搜集t时刻的工作负载信息Xt,服务请求响应时间为rtt。
使用最近的k个工作负载向量(Xt-k+1,…,Xt-1,Xt)使用训练得到的微服务工作负载预测模型(步骤3),计算得到预测的下一个t+1时间间隔的工作负载向量Xt+1。
将工作负载向量Xt+1和设置的SLO响应时间阈值RTthr,输入到微服务资源需求预测模型(步骤2),计算得到预测的下一个t+1时间间隔的微服务实例数量cnt+1。
微服务容器实例数量的最近k个预测值cnt+1形成列表(cnt-k+1,...,cnt-1,cnt),计算列表中微服务容器实例数量的均值与标准差β;如果则表示当前工作负载发生突发波动,则当前负载检测为突发模式,将当前微服务容器实例数量扩展为当前窗口中最大实例数量。否则,将当前微服务容器实例数量调整为cnt+1。
与现有采用被动式响应策略的方法相比,本发明具有以下优点:
(1)与现有被动式响应方法不同,本发明采用主动式预测方法,根据历史工作负载预测今后负载波动情况以预测微服务资源需求量,可以事先扩展或收缩微服务容器实例,从而避免无法及时应对工作负载变化而造成SLO响应时间冲突。同时,通过按需资源的伸缩,提高了资源利用率;
(2)通过检测工作负载突发变化的情况,实现渐变式的逐步伸缩微服务容器实例数量,实现资源的平稳调节,降低工作负载突发引起频繁伸缩操作的性能开销,保证微服务应用程序的稳定运行。
(3)在云计算环境下的微服务资源管理方面,将Lasso回归算法和XGBoost算法结合使用,进行微服务工作负载及资源需求预测,具有更高的准确性和更好的适用性。
本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
Claims (9)
1.一种云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,所述方法具体包括:
S1、基于最近k个时间间隔的工作负载向量来预测下一时间间隔t+1的工作负载Xt+1;
S2、将下一时间间隔t+1的工作负载Xt+1及设置的响应时间阈值RTthr输入微服务资源需求预测模型,输出下一时间间隔t+1所需的为服务器容器实例数量cnt+1预测值。
2.如权利要求1所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,微服务资源需求预测模型是基于XGBoost模型构建。
3.如权利要求2所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,微服务资源需求预测模型的构建方法具体包括如下步骤:
S12、构建样本集,将样本集中的样本分为测试集和训练集;
S22、基于训练集对XGBoost模型进行训练,基于测试集对训练后的XGBoost模型进行测试,在XGBoost模型的识别精度达到设定标准后,即形成微服务资源需求预测模型。
4.如权利要求3所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,样本集的构建方法具体如下:
采用工作负载生成器模拟生成用户请求,以设定的步长逐渐线性增加工作负载的并发数量,在微服务中的设定比例的用户请求响应时间超过时间阈值时,则增加一个微服务容器;
每隔T秒记录一次工作负载请求数量及该工作负载请求数量下的微服务容器数量,形成一个样本,放入样本集中。
5.如权利要求1所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,下一时间间隔t+1的工作负载Xt+1的获取方法具体如下:
将最近k个时间间隔的工作负载向量输入微服务工作负载预测模型,微服务工作负载预测模型输出下一时间间隔t+1的工作负载Xt+1。
6.如权利要求5所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,微服务工作负载预测模型是基于Lasso回归算构建。
8.如权利要求1所述云环境下基于资源需求预测的微服务弹性伸缩方法,其特征在于,工作负载表示为:Xt=(x1,x2,...,xi,...,xq),其中xi表示微服务的第i个服务接口的请求数量,服务接口数量为q。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399352.XA CN115913967A (zh) | 2022-11-09 | 2022-11-09 | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399352.XA CN115913967A (zh) | 2022-11-09 | 2022-11-09 | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115913967A true CN115913967A (zh) | 2023-04-04 |
Family
ID=86493196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211399352.XA Pending CN115913967A (zh) | 2022-11-09 | 2022-11-09 | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115913967A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116643844A (zh) * | 2023-05-24 | 2023-08-25 | 方心科技股份有限公司 | 面向电力超算云资源自动扩展的智能化管理***及方法 |
-
2022
- 2022-11-09 CN CN202211399352.XA patent/CN115913967A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116643844A (zh) * | 2023-05-24 | 2023-08-25 | 方心科技股份有限公司 | 面向电力超算云资源自动扩展的智能化管理***及方法 |
CN116643844B (zh) * | 2023-05-24 | 2024-02-06 | 方心科技股份有限公司 | 面向电力超算云资源自动扩展的智能化管理***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Toka et al. | Machine learning-based scaling management for kubernetes edge clusters | |
CN112000459B (zh) | 一种用于服务的扩缩容的方法及相关设备 | |
Abdullah et al. | Burst-aware predictive autoscaling for containerized microservices | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
Xie et al. | Real-time prediction of docker container resource load based on a hybrid model of ARIMA and triple exponential smoothing | |
Mishra et al. | Esp: A machine learning approach to predicting application interference | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
Trushkowsky et al. | The {SCADS} Director: Scaling a Distributed Storage System Under Stringent Performance Requirements | |
US11579933B2 (en) | Method for establishing system resource prediction and resource management model through multi-layer correlations | |
Bashar | Autonomic scaling of cloud computing resources using BN-based prediction models | |
Pérez et al. | An offline demand estimation method for multi-threaded applications | |
Rolik et al. | Dynamie management of data center resources using reinforcement learning | |
CN115913967A (zh) | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 | |
Tahir et al. | Online workload burst detection for efficient predictive autoscaling of applications | |
Nhu et al. | Dynamic network slice scaling assisted by attention-based prediction in 5g core network | |
Xiao et al. | Dscaler: A horizontal autoscaler of microservice based on deep reinforcement learning | |
Shi et al. | PAPMSC: power-aware performance management approach for virtualized web servers via stochastic control | |
Martyshkin et al. | Queueing Theory to Describe Adaptive Mathematical Models of Computational Systems with Resource Virtualization and Model Verification by Similarly Configured Virtual Server | |
Xu et al. | Model-based reinforcement learning for elastic stream processing in edge computing | |
KR20160044623A (ko) | 리눅스 가상 서버의 로드 밸런싱 방법 | |
KR20230089509A (ko) | Bi-LSTM 기반 웹 애플리케이션 워크로드 예측 방법 및 장치 | |
Ferretti et al. | Cloud vs On-Premise HPC: a model for comprehensive cost assessment | |
Jehangiri et al. | Distributed predictive performance anomaly detection for virtualised platforms | |
Rayan et al. | Resource Prediction for Big Data Processing in a Cloud Data Center: A Machine Learning Approach: A Machine Learning Approach | |
Thakkar et al. | Mvms: Rnn based pro-active resource scaling in cloud environment |
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 |