CN109976908B - 一种基于rnn时间序列预测的服务器集群动态伸缩方法 - Google Patents
一种基于rnn时间序列预测的服务器集群动态伸缩方法 Download PDFInfo
- Publication number
- CN109976908B CN109976908B CN201910196409.8A CN201910196409A CN109976908B CN 109976908 B CN109976908 B CN 109976908B CN 201910196409 A CN201910196409 A CN 201910196409A CN 109976908 B CN109976908 B CN 109976908B
- Authority
- CN
- China
- Prior art keywords
- server
- layer
- cpu
- rnn
- baseline
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于RNN神经网络时间序列预测对服务器集群进行动态伸缩调度的方法。该方法包括,一种基于RNN神经网络对服务器集群资源负载进行预测的技术方案,一种基于反向传播理论对RNN模型求最优解的方法和一种根据预测结果对服务器集群进行动态调度的方法。通过RNN神经网络对服务器集群历史负载进行检测,预测出服务器集群下一个时间点可能的负载状况,根据预测结果增加或减少服务器集群节点数量。保障服务器集群拥有弹性伸缩且稳定的计算能力。
Description
技术领域
本发明属于云计算领域。
背景技术
云计算(Cloud Computing)是一种随着互联网高速发展带动起来的新型计算方式,通过高速的互联网传输,可以将共享的硬件基础设施、软件资源和信息按需求提供给各种手机和计算机等终端。云可以说是对网络链接对一种抽象,也可以用来表示底层基础设施的抽象,通过互联网讲大量的运算资源链接起来,用户不需要再关心“云”中基础设施的细节,不必需要知道硬件的运维知识,只需要按照自己的需求,向云端请求计算资源。可以说弹性伸缩是云计算的一个重要特点,但是传统的服务器扩容方案,一种是纵向拓展,直接修改扩展虚拟机配置,这样一般需要重启服务器,然而大多数公司的服务是不允许中间停止的。另外一种是通过集群的方法组织服务器资源,在需要的时候适当增加服务器节点,然而这样有一定滞后性,服务器负载高峰往往是突发性的,在高峰到来之际再扩容,可能服务器已经无法处理负载甚至宕机。
传统的机器学习预测一般需要大量的特征才能建立合适的模型,而服务器的负载状况一般只有CPU利用率和内存利用率两条特征,机器学习无法对这种数据集进行很好的建模和预测。为了解决服务器负载预测问题,本发明提出了基于神经网路的预测方法,神经网络是从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络具有很强的数据拟合能力和自学习能力,其中RNN(递归神经网络)善于处理一个连续序列的数据集,在数据量足够的情况下,即使只有一两个特征也有良好的预测效果。通过对服务器历史负载进行RNN神经网络建模,建立基于数据驱动的服务器负载模型,实现对云计算集群负载高峰和低谷的预测,在服务器集群负载高峰来临之际,提前进行扩容。在集群利用率低下的时候减少计算节点。降低了云服务资源的运行压力,实现了真正的弹性伸缩的云计算。
发明内容
本发明提出了一种基于RNN神经网络对服务器资源负载的连续时间序列进行预测的方法,设计了一种基于RNN神经网络的时间序列模型,并且用该模型对服务器未来可能的负载进行预测,在高峰到来之前提前对集群进行提前扩容,从容应对集群负载高峰,提高集群稳定性;在集群未来资源过于宽裕时,适当减少计算节点数目,降低云计算资源的浪费。
本发明采用了如下的技术方案及实现步骤:
1.一种基于RNN神经网络对服务器资源负载进行预测的技术方案:
包括以下步骤:
(1)本发明的云计算资源以服务器集群的形式存在,用OpenStack统一进行管理,每台服务器配置一致,服务器已经进行负载均衡,所以每台服务器负载状况几本一致,集群在初始启动时建立两种服务器,一种持久态服务器,即无论集群负载情况如何都不会关闭,另外一种备用态服务器,正常情况下以镜像的方式由OpenStack统一管理,需要时可以由运维脚本进行启动或者关闭。通过OpenStack内置的监控对服务器负载状况进行监测,每隔15分钟进行一次记录,记录内容为当前时间t,所有服务器节点CPU利用率的平均数xt(取值在0-100),所有服务器的内存平均利用率mt(取值0-100)。在取得足够量的数据集后对这个数据集进行RNN时间序列预测建模。假设我们给定(xt,xt+1,xt+2),通过RNN模型,希望预测xt+3,即下一时刻的cpu利用率,如图1,xt为不同时刻的输入ht为隐藏状态,ot为不同时刻的输出。
(2)神经网络建模过程,RNN神经网络一共有三层。分别为第一层的输入层、第二层的隐藏层和第三层的输出层。在建模过程分为时序前向传播算法和时序反向传播算法(Back Propagation Through Time)。时序前向传播算法描述如下:因为数据点为每隔15分钟记录一次,这边描述一次循环的步骤:
①在t时刻第一层每次输出为ht。
②将第一层与第二层借由一下公式连接:
ht=φ(Uxt+Wht-1) (1)
ht为t时刻的隐藏层,初始化为一个全部为0的向量、U是权重矩阵连接此时刻的CPU利用率,W是权重矩阵连接上一时刻隐藏层,φ为隐藏层的激活函数。
③将第二层与第三层借由以下公式连接:
④最后ot为第一次循环的输出结果
(3)将所有数据循环加入模型以后(每加入一次新数据均重复一次步骤(2)),可以预测出下一个15分钟的CPU使用率。
(4)输入层改为内存的数据,重复步骤(2)(3),即可计算出未来15分钟的内存利用率模型。
附图说明
图1是本发明流程示意图。
具体实施方式
2.一种基于反向传播理论对RNN模型求最优解的方法。
包含以下步骤:
(1)时序反向传播算法是为了求出目标函数最小值的最优解。定义损失函数为均方误差(mse):
其中
Lt=(yi-oi)2 (4)
定义:
由公式(1)(2)得:
(2)借由梯度下降法去求解目标函数的最小值,此为一个链式求导的过程。首先从目标函数到输出层的反向传播,对Lt求导的公式如下:
注意:统一使用*表示矩阵的哈达玛积(对应元素相乘),使用×表示矩阵乘法,T为矩阵的转制,下同。
由于公式(3)得总梯度可以表示为:
(3)RNN的BP算法,主要难点在于State之间的通信,梯度除了按照空间结构传输(ot→ht→xt)还得沿着时间通道传播(ht→ht-1→...→h1),我们在这里采用“循环”的方法来计算各个梯度,由于是反向传播算法,所以t应从n始降序循环至1,在此期间若需要初始化、则初始化为0向量或0矩阵,对隐藏状态的梯度表示为:
定义k是某一时间点的State,则下面公式代表每个时间点的隐藏梯度:
为了使目标函数最小值,每次迭代时序反向传播算法都会更新U、W,最后得出目标函数对U和对W的梯度为:
根据W、U两个权重矩阵返回到公式(2)即可得到准确的输出。
3.一种根据预测结果对服务器集群进行动态调度的方法。
由用户设定四个个阀值cpu_leisure_baseline(服务器CPU空闲阀值,取值0-50),cpu_busy_baseline(服务器CPU繁忙阀值,取值50-100)mem_leisure_baseline(服务器内存空闲阀值,取值0-50),mem_busy_baseline(服务器内存繁忙阀值,取值50-100)。当CPU使用率预测值<cpu_leisure_baseline且内存使用率预测值<mem_busy_baseline,通过设置好的运维脚本关闭一台备用态标记的服务器;当CPU使用率预测值>cpu_busy_baseline或内存使用率的预测值>mem_busy_baseline,则通过设定好的运维脚本开启一台备用态标记的服务器。同时服务器持续监控集群状况,不断更新监控数据集并持续更新RNN神经网络模型,提高模型预测的准确度。
Claims (3)
1.一种基于RNN时间序列预测的服务器集群动态伸缩方法,其特征在于包括以下步骤:
(1)云计算资源以服务器集群的形式存在,用OpenStack统一进行管理,每台服务器配置一致,服务器已经进行负载均衡,集群在初始启动时建立两种服务器,一种持久态服务器,即无论集群负载情况如何都不会关闭,另外一种备用态服务器,正常情况下以镜像的方式由OpenStack统一管理,需要时由运维脚本进行启动或者关闭;通过OpenStack内置的监控对服务器负载状况进行监测,每隔15分钟进行一次记录,记录内容为当前时间t,所有服务器节点CPU利用率的平均数xt,所有服务器的内存平均利用率mt;在取得数据集后对这个数据集进行RNN时间序列预测建模;给定(xt,xt+1,xt+2),通过RNN模型,希望预测xt+3,即下一时刻的cpu利用率,xt为不同时刻的输入,ht为t时刻的隐藏层,ot为不同时刻的输出;
(2)神经网络建模,RNN神经网络一共有三层;分别为第一层的输入层、第二层的隐藏层和第三层的输出层;在建模过程分为时序前向传播算法和时序反向传播算法,时序前向传播算法描述如下:因为数据点为每隔15分钟记录一次,这边描述一次循环的步骤:
①在t时刻第一层每次输出为ht;
②将第一层与第二层之间由以下公式连接:
ht=φ(Uxt+Wht-1) (1)
ht为t时刻的隐藏层,初始化为一个全部为0的向量、U是权重矩阵连接此时刻的CPU利用率,W是权重矩阵连接上一时刻隐藏层,φ为隐藏层的激活函数;
③将第二层与第三层之间由以下公式连接:
④输出第一次循环的输出结果
(3)将所有数据循环加入模型以后,每加入一次新数据均重复一次步骤(2),预测出下一个15分钟的CPU使用率;
(4)输入层改为内存的数据,重复步骤(2)(3),计算出未来15分钟的内存利用率模型。
2.根据权利要求1所述方法,其特征在于,一种基于反向传播理论对RNN模型求最优解包含以下步骤:
(1)时序反向传播算法是为了求出目标函数最小值的最优解;定义损失函数为均方误差
其中
Lt=(yi-oi)2 (4)
定义:
由公式(1)(2)得:
(2)由梯度下降法去求解目标函数的最小值,此为一个链式求导的过程;首先从目标函数到输出层的反向传播,对Lt求导的公式如下:
使用*表示矩阵的哈达玛积,使用×表示矩阵乘法,T为矩阵的转置,
由于公式(3)得总梯度表示为:
(3)采用“循环”的方法来计算各个梯度,由于是反向传播算法,所以t应从n始降序循环至1,在此期间若需要初始化、则初始化为0向量或0矩阵,对隐藏状态的梯度表示为:
定义k是某一时间点的State,则下面公式代表每个时间点的隐藏梯度:
为了使目标函数最小值,每次迭代时序反向传播算法都会更新U、W,最后得出目标函数对U和对W的梯度为:
根据W、U两个权重矩阵返回到公式(2)得到准确的输出。
3.根据权利要求1所述的方法,其特征在于:由用户设定四个个阀值cpu_leisure_baseline(服务器CPU空闲阀值,取值0-50),cpu_busy_baseline(服务器CPU繁忙阀值,取值50-100)mem_leisure_baseline(服务器内存空闲阀值,取值0-50),mem_busy_baseline(服务器内存繁忙阀值,取值50-100);当CPU使用率预测值<cpu_leisure_baseline且内存使用率预测值<mem_busy_baseline,通过设置好的运维脚本关闭一台备用态标记的服务器;当CPU使用率预测值>cpu_busy_baseline或内存使用率的预测值>mem_busy_baseline,则通过设定好的运维脚本开启一台备用态标记的服务器;同时服务器持续监控集群状况,不断更新监控数据集并持续更新RNN神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910196409.8A CN109976908B (zh) | 2019-03-15 | 2019-03-15 | 一种基于rnn时间序列预测的服务器集群动态伸缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910196409.8A CN109976908B (zh) | 2019-03-15 | 2019-03-15 | 一种基于rnn时间序列预测的服务器集群动态伸缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976908A CN109976908A (zh) | 2019-07-05 |
CN109976908B true CN109976908B (zh) | 2021-08-06 |
Family
ID=67078940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910196409.8A Active CN109976908B (zh) | 2019-03-15 | 2019-03-15 | 一种基于rnn时间序列预测的服务器集群动态伸缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976908B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990159B (zh) * | 2019-12-25 | 2023-05-23 | 浙江大学 | 一种基于历史数据分析的容器云平台资源配额预测方法 |
CN111787109A (zh) * | 2020-07-02 | 2020-10-16 | 哈尔滨工程大学 | 一种基于时间序列预测的数据中心负载均衡方法 |
CN112217858A (zh) * | 2020-08-28 | 2021-01-12 | 北京思特奇信息技术股份有限公司 | 一种云计算资源弹性伸缩的方法和*** |
CN112087504A (zh) * | 2020-08-31 | 2020-12-15 | 浪潮通用软件有限公司 | 一种基于工作负载特性的动态负载均衡的方法及装置 |
CN114579294B (zh) * | 2020-12-02 | 2024-07-12 | 上海交通大学 | 云原生环境下支持服务负载激增预测的容器弹性伸缩*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445680A (zh) * | 2016-08-31 | 2017-02-22 | 成都云麒麟软件有限公司 | 基于综合效用的计算单元迁移方法 |
CN108255581A (zh) * | 2018-01-15 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种基于神经网络模型的负载确定方法、装置及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694652B (zh) * | 2009-09-30 | 2012-11-28 | 西安交通大学 | 一种基于极速神经网络的网络资源个性化推荐方法 |
CN105550323B (zh) * | 2015-12-15 | 2020-04-28 | 北京中电普华信息技术有限公司 | 一种分布式数据库负载均衡预测方法和预测分析器 |
US20180046920A1 (en) * | 2016-08-10 | 2018-02-15 | Paypal, Inc. | User Data Learning Based on Recurrent Neural Networks with Long Short Term Memory |
US10534613B2 (en) * | 2017-04-28 | 2020-01-14 | Intel Corporation | Supporting learned branch predictors |
CN107730087A (zh) * | 2017-09-20 | 2018-02-23 | 平安科技(深圳)有限公司 | 预测模型训练方法、数据监控方法、装置、设备及介质 |
CN108280514B (zh) * | 2018-01-05 | 2020-10-16 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速***和设计方法 |
CN108459997A (zh) * | 2018-02-07 | 2018-08-28 | 深圳市微埃智能科技有限公司 | 基于深度学习和神经网络的高偏态数据价值概率预测方法 |
CN108268322B (zh) * | 2018-02-26 | 2022-07-01 | 北京小米移动软件有限公司 | 内存优化的方法、装置及计算机可读存储介质 |
CN108897614A (zh) * | 2018-05-25 | 2018-11-27 | 福建天晴数码有限公司 | 一种基于卷积神经网络的内存预警方法及服务端 |
-
2019
- 2019-03-15 CN CN201910196409.8A patent/CN109976908B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445680A (zh) * | 2016-08-31 | 2017-02-22 | 成都云麒麟软件有限公司 | 基于综合效用的计算单元迁移方法 |
CN108255581A (zh) * | 2018-01-15 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种基于神经网络模型的负载确定方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
"A RNN based time series approach for forecasting turkish electricity load";Alper Tokgoz;《2018 26th Signal Processing and Communications Applications Conference》;20180709;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109976908A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976908B (zh) | 一种基于rnn时间序列预测的服务器集群动态伸缩方法 | |
Yu et al. | Toward resource-efficient federated learning in mobile edge computing | |
CN113225377B (zh) | 物联网边缘任务卸载方法及装置 | |
WO2020173237A1 (zh) | 一种类脑计算芯片及计算设备 | |
US20220114475A1 (en) | Methods and systems for decentralized federated learning | |
CN111861793B (zh) | 基于云边协同计算架构的配用电业务分配方法及装置 | |
CN111953515B (zh) | 一种基于Nesterov梯度法和重球法的双加速分布式异步优化方法 | |
CN111970154B (zh) | 基于深度增强学习和凸优化的卸载决策及资源分配方法 | |
CN112667400A (zh) | 边缘自治中心管控的边云资源调度方法、装置及*** | |
Chen et al. | Building autonomic elastic optical networks with deep reinforcement learning | |
CN111813539A (zh) | 一种基于优先级与协作的边缘计算资源分配方法 | |
Hou et al. | An intelligent transaction migration scheme for RAFT-based private blockchain in Internet of Things applications | |
Guo et al. | A delay-sensitive resource allocation algorithm for container cluster in edge computing environment | |
CN113553149A (zh) | 云服务器集群负载调度方法、***、终端以及存储介质 | |
Cui et al. | Multiagent reinforcement learning-based cooperative multitype task offloading strategy for internet of vehicles in B5G/6G network | |
Ju et al. | Learning early exit for deep neural network inference on mobile devices through multi-armed bandits | |
Srivastava et al. | Machine intelligence approach: To solve load balancing problem with high quality of service performance for multi-controller based Software Defined Network | |
CN116566805B (zh) | 一种面向体系容灾抗毁的节点跨域调度方法、装置 | |
CN115499511B (zh) | 一种基于时空图神经网络负载预测的微服务主动伸缩方法 | |
CN116954866A (zh) | 基于深度强化学习的边缘云下任务调度方法及*** | |
CN116204319A (zh) | 基于sac算法与任务依赖关系的云边端协同卸载方法及*** | |
Feltin et al. | Dnn partitioning for inference throughput acceleration at the edge | |
Liang et al. | Communication-Efficient Large-Scale Distributed Deep Learning: A Comprehensive Survey | |
Yang et al. | Knowledge-defined edge computing networks assisted long-term optimization of computation offloading and resource allocation strategy | |
Gu et al. | Cooperative task offloading for internet of vehicles in cloud-edge computing |
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 |