CN114138416A - 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 - Google Patents
面向负载-时间窗口的基于dqn云软件资源自适应分配方法 Download PDFInfo
- Publication number
- CN114138416A CN114138416A CN202111472211.1A CN202111472211A CN114138416A CN 114138416 A CN114138416 A CN 114138416A CN 202111472211 A CN202111472211 A CN 202111472211A CN 114138416 A CN114138416 A CN 114138416A
- Authority
- CN
- China
- Prior art keywords
- resource allocation
- value
- dqn
- time window
- management operation
- 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 64
- 238000013468 resource allocation Methods 0.000 claims abstract description 93
- 238000007726 management method Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000012549 training Methods 0.000 claims description 44
- 230000009471 action Effects 0.000 claims description 38
- 238000004422 calculation algorithm Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 18
- 238000013528 artificial neural network Methods 0.000 claims description 17
- 230000003044 adaptive effect Effects 0.000 claims description 9
- 230000007704 transition Effects 0.000 claims description 4
- 238000013523 data management Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000013459 approach Methods 0.000 description 23
- 238000010801 machine learning Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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/08—Learning methods
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种面向负载‑时间窗口的基于DQN云软件资源自适应分配方法。大多数现有方法只考虑工作负载的当前状况,因此无法很好地适应受工作负载波动影响的真实云环境。本发明方法考虑了资源分配过程中的当前和未来工作负载。具体而言,基于工作负载时间窗口的原始Deep Q‑Network(DQN)管理操作预测模型经过培训,该模型可用于预测不同系统状态下的适当管理操作。接下来,设计了一种新的反馈控制机制,通过迭代执行管理操作来构建当前系统状态下的客观资源分配计划。大量的仿真结果表明,该DRAW方法生成的管理操作的预测精度可以达到90.69%。此外,DRAW可以实现最佳/接近最佳性能,并在不同情况下比其他经典方法高出3~13%。
Description
技术领域
本发明涉及一种面向负载-时间窗口的基于DQN云软件资源自适应分配方法。
背景技术
多年来,基于云的广泛应用软件服务快速增长。然而,由于云环境中系统状态复杂多变,在为基于云的软件服务进行资源分配时,要在QoS和资源成本之间实现良好的权衡是非常具有挑战性的。为了应对这一挑战,为基于云的软件服务设计一种自适应资源分配方法至关重要。有一些经典的方法,例如基于规则的、控制理论的和基于机器学习(ML)的方法,可以在一定程度上解决云资源分配的问题。基于规则的方法需要为软件服务定义各种规则,这导致规则设置的巨大成本并限制其在动态云环境中的应用。此外,控制理论方法需要大量迭代来确定有效的资源分配计划,如果虚拟机(VM)频繁中断,这可能会导致额外成本。此外,基于ML的方法使云系统能够从历史数据中学习特定领域知识以优化资源分配。然而,在现实世界的云环境中,很难收集足够的训练数据来支持基于ML的方法。因此,这些基于云的软件服务资源分配的经典方法可能不太适合具有可变工作负载和服务请求的现实世界云环境。
发明内容
本发明的目的在于提供一种面向负载-时间窗口的基于DQN云软件资源自适应分配方法,
为实现上述目的,本发明的技术方案是:一种面向负载-时间窗口的基于DQN云软件资源自适应分配方法,包括如下步骤:
步骤S1、通过历史运行数据构造DQN模型的训练集,训练集包括某时刻的负载时间窗口、虚拟机资源配置、系统QoS值以及该时刻的目标资源分配方案,根据训练集,使用DQN算法训练管理操作Q值预测模型,管理操作Q值预测模型可以评估不同系统状态下管理操作的Q值;
步骤S2、在运行时,使用步骤S1中得到的管理操作Q值预测模型,根据当前负载时间窗口、当前虚拟机资源配置以及相应的QoS,预测不同管理操作的Q值,然后,通过比较不同管理操作的Q值来选择管理操作;重复上述过程,通过反馈迭代逐步找到目标资源分配方案。
在本发明一实施例中,步骤S1中,使用DQN算法训练管理操作Q值预测模型的具体实现方式如下:
首先,随机初始化网络参数;其次,使用DQN算法对每条训练数据管理操作的Q值进行评估,训练过程持续,直到遍历完成所有训练集;第三,根据训练数据初始化scur,如果初始状态scur不是目标状态sobj,则根据当前的Q值使用∈-greedy算法从动作空间A中选择一个动作a;然后,通过使用公式(1)计算动作a的奖励r;生成下一步对应的状态,用s′表示;如果执行动作a后,状态不属于合法状态范围,则跳过本轮训练;第四,使用mini-batch方法从重放内存中随机收集示例,并根据损失函数训练DQN来更新神经网络的权重和偏差;每K步更新一次神经网络的参数;然后,scur被s′替换,状态转换发生;最后,神经网络持续更新,直到所有数据集都训练完成;
其中sobj定义为一个客观的资源分配计划,动作a(a∈A)代表一个管理操作,如果在当前资源分配方案scur下采取行动a找到目标资源分配方案sobj,则获得10的奖励;如果不在可选的状态集合sopt中的未知资源分配方案由在当前资源分配方案scur下采取行动a,则获得-1的奖励;在其他情况下,采取任何行动都不会产生奖励。
在本发明一实施例中,使用mini-batch方法从重放内存中随机收集示例,即:
随机抽取经验池D中的m个样本,并计算目标值:
在本发明一实施例中,损失函数如下:
其中,Q(s,a;ω)是当前的状态s选择动作a获得的Q值,ω为神经网络的权重。
在本发明一实施例中,步骤S2具体实现如下:
首先,在资源调整过程中,算法根据输入的当前运行时环境状态,调用管理操作Q值预测模型来获取所有管理操作对应的Q值集合Q_values;如果管理操作被认为是非法的,相应的Q值将被I索引;接下来,如果所有合法管理操作的Q值小于或等于预定义的阈值P,或者执行管理操作后的资源配置曾出现,认为找到了客观的资源分配方案,不需要再进行任何管理操作;否则,将执行具有最小Q值的管理操作,并不断寻求客观的资源分配计划;同时,将每一步的资源配置都保存在VM_List中。
相较于现有技术,本发明具有以下有益效果:本发明提出了一个DRAW来探索基于云的软件服务的自适应资源分配,通过引入工作负载时间窗口设计了一个基于DQN的管理操作预测模型,该模型能够预测不同系统状态下的适当管理操作。接下来,开发了一种反馈控制机制,通过迭代执行管理操作来寻找当前系统状态下的客观资源分配计划。使用RUBiS基准,进行了广泛的模拟实验,以验证所提出的DRAW在实现云资源分配的最佳/接近最佳性能方面的有效性。通过DRAW,管理操作的预测准确率可以达到90.69%。此外,在各种工作负载和服务请求的不同场景下,DRAW比其他经典方法高出3~13%。
附图说明
图1为本发明方法概览图。
图2为本发明DQN架构图。
图3为具有工作负载时间窗口的不同z资源分配方案。
图4为场景二下DRAW与理想资源分配方案对比。
图5为不同方法在总适应度方面的比较。
图6为不同方法在QoS和资源成本方面的比较。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明一种面向负载-时间窗口的基于DQN云软件资源自适应分配方法,包括如下步骤:
步骤S1、通过历史运行数据构造DQN模型的训练集,训练集包括某时刻的负载时间窗口、虚拟机资源配置、系统QoS值以及该时刻的目标资源分配方案,根据训练集,使用DQN算法训练管理操作Q值预测模型,管理操作Q值预测模型可以评估不同系统状态下管理操作的Q值;
步骤S2、在运行时,使用步骤S1中得到的管理操作Q值预测模型,根据当前负载时间窗口、当前虚拟机资源配置以及相应的QoS,预测不同管理操作的Q值,然后,通过比较不同管理操作的Q值来选择管理操作;重复上述过程,通过反馈迭代逐步找到目标资源分配方案。
以下为本发明具体实现过程。
1、问题定义
当运行的环境变化的时候,云中软件服务就会有不同的服务质量(QoS)。而运行环境变化在本文中主要分为外部环境变化与内部环境变化。具体来说,外部环境的变化通常是由外部因素(如动态工作负载)引起的,内部环境的变化通常是受云管理系统的影响(如资源分配方案中不同类型、不同数量、不同租金价格的虚拟机)。
如上所述,外部因素指的是动态工作负载,假设工作负载是连续函数,表示如下:
W=w(t),t0≤t≤t0+T (1)
其中,ti时刻负载情况表示为w(ti),由负载量与负载类型组成,t0≤t≤t0+T表示可调整资源的负载时间段。
内部环境变化主要指的是虚拟机资源分配方案,可表示为:
VM=vm(t),t0≤t≤t0+T (2)
假定系统中共有n种不同的虚拟机,则ti时刻负载对应的虚拟机分配方案表示为:
在为基于云的软件服务分配资源时,云工程师或自适应系统的一个共同目标是平衡QoS和资源成本之间的关系,可以用目标函数来表示。
一方面,QoSi表示ti时刻对应的QoS值,这通常由具有相应性能指标的服务水平协议(SLA)指定,包括响应时间(RT)和数据吞吐量(DT)。具体来说,RT表示用户在请求服务时需要等待响应的时间,DT表示系统在给定时间内可以处理的信息量。因此,QoSi定义为:
QoSi=SLAs(RTi,DHi,...) (4)
另一方面,Costi表示ti时刻对应的资源成本,它由两部分组成,包括ti时刻虚拟机租赁成本CostL以及虚拟机关闭成本Costd,假设租赁第j种虚拟机消费为Cj,则在调整时间内(t0≤t≤t0+T)总体资源成本可表示为:
于是,目标函数可以表示为:
其中r1和r2由云工程师预先定义,用于权衡服务质量和资源成本。t0~t0+T表示可调整的资源分配时间。
但是,如果仅根据当前的工作量来制定资源分配计划,则难以很好地保证资源分配计划的有效性。通过引入工作量-时间窗口,可以更有效地计算不同时间间隔的资源分配计划。这是因为在当前时刻分配资源时,可以通过使用工作负载时间窗口来观察未来一段时间内的工作负载。因此,当前的资源分配计划可以进行相应的调整,变得更加有效。
假设时间窗口能够预测到长度为L(L<<T)的工作负载区域,结合公式(1),ti时刻对应的时间窗口内的负载WL可表示为:
WL=w(t),ti≤t≤ti+L (7)
于是,ti时刻时间窗口内虚拟机分配方案对应的适应度函数可表示为:
其中,时间窗口内的总体QoS值与Cost值可以通过公式(4)和(5)来计算。因此,每个时刻对应的负载时间窗口,其目标资源分配方案的适应度函数值最小,它通过平衡窗口中的总体QoS和Cost来获得。
由上述公式定义可得,时间窗口对应的运行时数据集如下表所示,系统运行状态由2元组<WL,vmcur>组成,其中WL=w(ti),t0≤ti≤t0+T(1≤i≤u)表示ti时刻时间窗口内的负载。代表ti时刻虚拟机资源配置方案,代表第j种类型虚拟机的数量。对于每个系统运行状态,都有多个可供选择的负载时间窗口内的虚拟机资源调整方案。如表1所示,表示可选虚拟机资源调整方案,其中表示时间窗口中ti+k×Δp(0≤k≤l)时刻的虚拟机资源调整方案。同时,每个可选的虚拟机资源调整方案对应表示为因此,使得当前负载时间窗口内最小的方案是目标资源调整方案(表示为),根据负载时间窗口内的目标资源调整方案,可以得到当前时刻的资源调整方案并进行资源调整。
表1面向负载时间窗口运行时数据集及包含性能指标的可选资源分配方案
然而,在工作负载和服务请求不断变化的复杂运行时环境下,选择合适的负载时间窗口对应的资源分配方案难度较大。传统的基于专家知识的方法,需要为不同应用场景设定管理规则,成本较高。本发明使用深度强化学习DRL(Deep Reinforcement Learning),建立面向变化负载时间窗口的管理操作决策模型,实现云软件服务的资源自适应分配。
2、方法描述
本发明针对具有工作负载时间窗口的基于云的软件服务提出的基于DRL的自适应资源分配策略。该方法可以有效地为基于云的软件服务获取自适应、高效的资源分配方案。图1说明了该方法的框架,其主要过程描述如下。
Step 1:通过历史运行数据构造DQN模型的训练集,训练集包括某时刻的负载时间窗口、虚拟机资源配置、系统QoS值以及该时刻的目标资源分配方案,如表2所示。根据上述训练集,使用DQN算法训练管理操作Q值预测模型,该模型可以评估不同系统状态下管理操作的Q值。于是,在输入当前系统状态(带有QoS的负载时间窗口和虚拟机资源配置)时,模型可以准确预测不同管理操作的Q值。
表2不同系统状态下运行时数据的数据集
W<sup>L</sup> | VM<sub>cur</sub> | QoS<sub>cur</sub> | VM<sub>obj</sub> |
x<sub>1,1</sub>,x<sub>1,2</sub>,...,x<sub>1,l</sub> | x<sub>1,l+1</sub>,x<sub>1,l+2</sub>,...,x<sub>1,l+n</sub> | x<sub>1,l+n+1</sub> | x<sub>1,l+n+1+1</sub>,x<sub>1,l+n+1+2</sub>,...,x<sub>1,l+n+1+n</sub> |
x<sub>2,1</sub>,x<sub>2,2</sub>,...,x<sub>2,l</sub> | x<sub>2,l+1</sub>,x<sub>2,l+2</sub>,...,x<sub>2,l+n</sub> | x<sub>2,l+n+1</sub> | x<sub>2,l+n+1+1</sub>,x<sub>2,l+n+1+2</sub>,...,x<sub>2,l+n+1+n</sub> |
… | … | … | … |
x<sub>d,1</sub>,x<sub>d,2</sub>,...,x<sub>d,l</sub> | x<sub>d,l+1</sub>,x<sub>d,l+2</sub>,...,x<sub>d,l+n</sub> | x<sub>u,l+n+1</sub> | x<sub>d,l+n+1+1</sub>,x<sub>d,l+n+1+2</sub>,...,x<sub>d,l+n+1+n</sub> |
Step 2:在运行时,使用步骤1中得到的管理操作Q值预测模型,根据当前负载时间窗口、当前虚拟机资源配置以及相应的QoS,预测不同管理操作的Q值,然后,通过比较它们对应的Q值来选择合适的管理操作;重复上述过程,通过反馈迭代逐步找到目标资源分配方案。
2.1、管理操作Q值预测模型
深度强化学习(DRL)可以在没有先验知识的情况下通过与环境交互来做出自动决策。这一优势使得DRL能够应用于复杂云环境下的资源分配问题。因此,使用一种DRL算法(即DQN)来评估不同系统状态下的管理操作的Q值,以探索基于云的软件服务的最有效的资源分配。DQN算法结合了Q-learning算法与深度学习,使用神经网络代替Q-learning算法中的Q值表。与Q-learning算法在庞大的Q值表中寻找状态-动作对不同,DQN将Q值函数拟合成为神经网络,通过输入的状态,就能得到所有动作对应的Q值。
图2是DQN架构图,DQN代理在运行时云环境中获取状态s(s∈S),再通过ε-greedy策略选择动作a(a∈A),然后就会收到环境执行动作a后得到的奖励值r以及下一个状态s′。接下来DQN算法将每一步得到的(s,a,r,s′)存放到经验存储池中。通常,DQN算法中的经验存放池的容量是预先设定好的,当达到存储阈值后,对神经网络参数进行更新,神经网络的损失函数如下:
Loss=(r+γmaxQ(s′,a′;ω′)-Q(s,a;ω))2 (10)
其中r是奖励,γ是折扣因子,maxQ(s′,a′;ω′)是在下一个状态s′选择动作a′获得的最大Q值,Q(s,a;ω)是当前的Q值。
接下来,通过表1中的历史运行数据构造模型的训练集,对于表1中某一时刻的负载时间窗口、当前虚拟机资源配置以及相应的QoS,管理员可以根据专家经验得到当前负载时间窗口内最小的目标资源调整方案,根据负载时间窗口内的目标资源调整方案,可以得到当前时刻的资源调整方案,并进行资源调整。因此,对于表1中的每个运行时环境,搜索目标资源并记录在表2中。更具体地说,表2记录了从表1中得到的d条不同系统状态下的运行数据,其中WL=(xi,1,xi,2,...,xi,l)(1≤i≤d)表示ti时刻时间窗口内的负载,xi,a(1≤a≤l)表示ti时刻窗口内第a个负载,它包括负载量与负载读写率。VMcur=(xi,l+1,xi,l+2,...,xi,l+n)代表ti时刻的资源分配方案,xi,l+j表示ti时刻虚拟机分配方案中第j(1≤j≤n)种类型虚拟机数量,相应的QoS表示为xi,l+n+1。对应的目标资源分配方案VMobj=(xi,l+n+1+1,xi,l+n+1+2,...,xi,l+n+1+n),其中Ni,l+n+1+j表示ti时刻目标虚拟机分配方案中第j(1≤j≤n)种类型虚拟机数量。
通过利用训练数据集,DQN代理可以逐步找到不同系统状态下Q值最高的管理操作,其中DQN算法指导Q值评估的学习过程。由于RL的目标是最大化累积奖励,因此通常使用马尔可夫决策过程(MDP)对其进行建模。更具体地说,一个MDP可以定义为一个4元组,用<S、A、P、R>表示,其中S是状态空间,A是动作空间,P是状态转换函数,R是奖励函数。
基于问题公式,所提出的资源分配问题中相应的状态空间S、动作空间A和奖励函数R定义如下。
状态空间:状态空间S定义为一个三元组,用S=<Wl,vmcur,QoScur>,表示,如表2所示。因此,S表示当前系统状态运行时环境,包括当前工作负载时间窗口、资源分配计划和相应的QoS。
动作空间:动作空间定义为A={add1,rm1,add2,rm2,...,addm,rmM},其中一个动作(管理操作)是添加或删除某种类型的虚拟机。例如addi是增加第i个类型的VM,rmi是移除第i个类型的VM。
奖励函数:奖励函数用于指导RL智能体寻找目标资源分配计划,其定义为
其中VMobj定义为一个客观的资源分配计划,动作a(a∈A)代表一个管理操作。如果在当前资源分配计划VMcur下采取行动a找到VMobj,则RL代理将获得10的奖励。如果未知资源分配计划(不在VMopt中)由在VMcur下采取行动a,RL代理将获得-1的奖励。在其他情况下,采取任何行动都不会产生奖励。
实际上,DQN是通过神经网络估计的Q值和reward的反向传递来确定新的Q值,并把Q值带入到损失函数中更新神经网络的参数。但是,直接使用上述过程很难训练出有效的Q值预测模型,原因如下:
1)当处于目标状态时,所有操作的Q值理论值为0,然而,由于接近目标状态时,操作的理论Q值较高,会影响到处于目标状态时操作Q值预测的正确性。例如,当虚拟机资源配置为(0,4,4)时,add2操作的Q值预测值为2.9373(理论值应为0)。这会对运行时决策过程中停止条件的设定造成影响。如表3所示,当处于目标状态时,操作Q值接近3,因此,将停止条件设为当所有操作Q值小于3时认为达到目标状态;但是,当虚拟机资源配置为(0,2,2)、(0,2,3)、(0,3,2)、(0,3,3)时,所有管理操作对应的Q值同样小于3,此时,将无法到达目标状态。
2)当处于目标状态时,所有操作的Q值理论值为0,然而,由于接近目标状态时,操作的理当资源分配计划中某类虚拟机的数量不在管理操作(即)后,对应的Q值变异为否定的(理论值应为-1),这会影响同类型虚拟机相反操作的Q值预测。例如,当VM2=8时,由于执行add2操作将导致VM2超过最大值,此时add2的Q值预测值均为负数(理论值应为-1),这同时影响了rm2操作的Q值预测值,相比VM2=7和8时rm3操作Q值预测值的差值,发现rm2的差值要大得多,说明rm2操作的Q值预测值在VM2=8时被拉低了,这进一步影响了管理操作的运行时决策。如表3所示,当虚拟机配置为(0,8,4)时,理论上选择的操作为rm2,但该状态下rm2的Q值预测值受add2的影响低于正常值(Q值预测值为2.5749),实际上却选择了add3(Q值预测值为3.3425),此时,将无法达到目标状态。
表3负载时间窗口WL=(3396,0.44,...,4500,0.52)时,不同管理操作对应的Q值列表
为了解决上述问题,在DQN训练过程中,将Q_target值进行如下处理:
如果相应的管理操作被视为非法操作,因此这些管理操作的Q_target被设为非法状态I,非法状态不加入DQN训练的经验存放池中。如果VMcur==VMobj,表示已经到达目标状态,因此Q_target被设置为0。其他情况,Q_target被设置为它们的倒数(即)。于是,越接近目标虚拟机分配方案,管理操作的Q值越小。表4说明了表3中Q值的处理结果示例。
表4负载时间窗口WL=(3396,0.44,...,4500,0.52)时,Q值处理后不同管理操作对应的Q值列表
如表4所示,对DQN算法训练过程中Q值计算进行处理后,运行时决策能够到达目标状态。一方面,处于目标状态时的管理操作Q值与其他状态有着较大差距,此时,停止条件设为Q值小于0.15,当初始虚拟机配置为(0,2,2)时,通过运行时决策能够逐步到达目标状态(0,4,4)。另一方面,VM2=8时rm2操作的Q值预测值不再受到add2操作的影响,特别的,当虚拟机配置为(0,8,4)时,管理操作rm2和rm3的Q值预测值分别为0.2987和0.3756,能够选择正确管理操作rm2。
于是,所提出算法的关键步骤如算法1所示。首先,随机初始化网络参数(第6~8行)。其次,使用DQN算法对每条训练数据管理操作的Q值进行评估,训练过程持续,直到遍历完成所有训练集(第9行)。在每个epoch中,根据训练数据(第11行)初始化scur。第三,如果scur不是sobj(第12行),则根据当前的Q值(第13~14行)使用∈-greedy算法从动作空间A中选择一个动作a。然后,通过使用等式计算动作a的奖励r。(11),生成下一步对应的状态(用s′表示)(第15~18行)。如果执行动作a后,状态不属于合法状态范围,则跳过本轮训练(19~21行)。第四,使用mini-batch方法从重放内存中随机收集示例(第23行)。通过根据损失函数训练DQN来更新网络的权重和偏差(第24行)。特别是,稳定的每K步更新一次参数(第25行)。然后,scur被s′替换,状态转换发生(第26行)。最后,神经网络会持续更新,直到所有数据集都训练完成。
2.2、管理操作的运行时决策
通过DQN管理操作预测模型,在不同的系统状态下可以预测管理操作。选择管理操作的决策过程在系统运行时执行,该过程主要的步骤如算法2所示。首先,在资源调整过程中,算法根据输入的当前运行时环境状态,调用DQN模型来获取所有管理操作对应的Q值集合Q_values(第10行)。如果管理操作被认为是非法的,相应的Q值将被I索引(第12~13行)。接下来,如果所有合法管理操作的Q值小于或等于预定义的阈值P(阈值是根据经验设置的能使资源配置停在较为理想位置的一个Q值,当所有管理操作的Q值都小于阈值时,达到停止条件),或者执行管理操作后的资源配置曾出现(存在于VM_List中),认为找到了客观的资源分配方案,不需要再进行任何管理操作(第18~19行)。否则,将执行具有最小Q值的管理操作(第21行),并不断寻求客观的资源分配计划;同时,将每一步的资源配置都保存在VM_List中(第22行)。
基于所提出的决策算法,可以通过运行时环境中的反馈控制逐步找到客观的资源分配计划。在每次迭代中,选择并执行可行的管理操作。运行时决策算法会一直持续,直至循环满足退出条件(即找到目标资源分配方案)。
3、方法评估
本节在考虑以下研究问题(RQ)的情况下评估提议的DRAW。
RQ 1:DRAW是否能够在各种运行时云环境下实现自适应资源分配?(第4.3.2节)
RQ 2:与经典方法相比,DRAW的性能改进有多大?(第4.3.3节)
3.1、实验设置与数据
在CloudStack上进行了模拟实验,其中包含三种类型的VM(即小型、中型和大型),其中对应的VM数量分别为vmS、vmM和vmL。表5显示了它们的配置,包括CPU、内存、CostL和CostD。当前资源分配计划用VMcur=(vms,vmM,vmL)表示。在CloudStack上,执行了RUBiS基准测试,这是模拟eBay.com的拍卖网站的原型。RUBiS基准模拟了各种工作负载下的用户行为(例如,浏览、出价和评级的服务请求),其中真实世界的工作负载数据集(700小时)是从Google集群使用跟踪中收集的。
表5 CloudStack中不同类型虚拟机配置信息
在RUBiS中,资源调整时间T为540分钟,工作负载时间窗口L的长度为90分钟,每15分钟执行一次资源分配。此外,当前工作负载量和各种服务请求的比例分别分布在[3000,5000]和[0,1]中。接下来,将训练数据集(约15000条记录)拆分为训练集(75%)和测试集(25%)。为了平衡QoS和资源成本,r1和r2分别设置为320和10。DQN算法使用TensorFlow1.4.0实现,其中DNN层数为4(每层神经元数的比例为16:512:512:6)。学习率、折扣因子γ、探索概率ε、情节数和重放缓冲区容量分别设置为0.001、0.8、0.1、500和2000。
如图3所示,基于RUBiS初始化了五种不同的资源分配场景,时间长度为540分钟。在每个场景中,都会执行运行时决策算法来寻找客观的资源分配计划,其中阈值P设置为0.15。当所有管理操作的Q值小于或等于P时,将不再进行管理操作。
3.2、RQ1:DRAW的有效性
首先,在图3所示的各种场景下评估了所提出的DRAW的有效性。具体而言,将DRAW的性能与这些场景下的理想结果进行了比较。在实践中,由于需要考察所有的可能性,因此很难得到理想的资源分配方案,复杂度极高。例如,有3种VM,数量从0到8不等。由于资源调整时间为540分钟,每15分钟执行一次资源分配,需要执行36次资源分配。同时,在长度为90分钟的工作负载时间窗口中,将发生6次资源分配。因此,需要对36×7296的资源分配计划进行测试以找到理想的分配计划,这在现实环境中是无法完成的。如图4所示,以场景2为例,DRAW可以实现与理想方案相似的资源分配方案,只有很小的差异。特别是,它们大部分时间都是相同的(即15、30、75、150、165和240)。结果表明,DRAW能够获得最佳/接近最佳的性能。
具体来说,以60分钟的场景2为例来描述DRAW的资源分配过程,其中WL=(3404,0.45,...,3774,0.44)。如表6所示,当VMcur被初始化为(1,0,5)时,add2是所有操作中预测Q值最小的。因此,第二类VM的数量加1,VMcur变为(1,1,5)。接下来,add1导致最小的预测Q值,并添加第一种类型的VM。对于每一步,将选择具有最小预测Q值的操作。当VMcur=(3,1,7)时,所有操作的预测Q-值都满足阈值P(即小于0.15),说明已经找到了客观的资源分配计划,不需要采取任何操作。
表6场景2在60分钟的资源分配过程
3.3、RQ2:DRAW的性能改进
将所提出的DRAW的性能与经典的基于ML的、基于DQN的和基于规则的方法进行比较。在评估这些方法时,分别考虑是否引入工作负载时间窗口。具体来说,没有工作负载时间窗口的基于ML的方法使用粒子群优化(PSO)来探索基于当前工作负载的目标计划,而有工作负载时间窗口的方法可以在多个工作负载时间窗口中探索目标计划。同样,基于DQN的没有工作负载时间窗口的方法只考虑当前工作负载下的目标计划,而有工作负载时间窗口的方法则同时考虑当前和未来的工作负载。没有工作负载时间窗口的基于规则的方法使用当前RT来设置选择操作的规则,而有工作负载时间窗口的方法结合了RT和工作负载变化率(即,)来设置选择操作的复合规则。详细的规则设置见表7和表8。
表7不考虑负载时间窗口的管理操作规则
表8考虑负载时间窗口的管理操作规则
如图5所示,DRAW在五种不同场景下的总适应度方面优于其他经典方法。对于具有工作负载时间窗口的场景,DRAW优于基于规则的方法9~13%。这是因为基于规则的方法涉及专家设置的分割规则,但无法将规则很好地应用于具有动态工作负载的复杂云环境中的资源分配问题。此外,DRAW的性能比基于ML的方法好3~8%,其中基于ML的方法中的QoS预测模型是使用与DRAW相同的数据集训练的。然而,仅在82.7%的情况下,模型误差小于15%。这是因为基于ML的方法需要大量历史数据来构建准确的QoS预测模型。在没有足够数据支持的情况下,该方法由于QoS预测不准确而无法实现高效的资源分配。与基于DQN的方法相比,DRAW在不同场景下将总适应度降低了6~12%。在基于DQN的方法中,在管理操作Q值预测模型的训练过程中,存在Q值突变的问题(详细描述见4.1节)。因此,在某些边界条件下很难准确预测Q值,这将导致资源分配效率低下。此外,与没有工作负载时间窗口的场景相比,通过引入工作负载时间窗口,DRAW、基于ML、基于DQN和基于规则的方法的性能可以提高10.77%、11.26%、11.60%,和11.00%。这是因为把握未来工作量变化的趋势对提高资源分配效率具有重要作用。
最后,从QoS和资源成本的角度展示了DRAW在工作负载时间窗口中的性能。如图6所示,基于规则的方法总是导致最好的QoS,而基于ML的方法在大多数情况下导致最差的QoS。相比之下,DRAW产生的QoS介于两者之间。虽然基于规则的方法具有最好的QoS,但它会导致最高的资源成本。这是因为它只制定了优化RT的规则,而忽略了资源成本问题。但是,很难制定规则来满足各种服务需求。相比之下,DRAW可以在QoS和资源成本之间做出更好的折衷。大多数情况下,与其他方法相比,DRAW导致更少的资源成本,同时相应的QoS也不错。同时,DRAW能够在不同时间保持稳定的QoS(大约0.91)。相比之下,基于ML的方法无法保持稳定的QoS,其值在0.85和0.91之间不断变化。
4、本发明的优点
本发明提出了一个DRAW来探索基于云的软件服务的自适应资源分配。首先,通过引入工作负载时间窗口设计了一个基于DQN的管理操作预测模型,该模型能够预测不同系统状态下的适当管理操作。接下来,开发了一种反馈控制机制,通过迭代执行管理操作来寻找当前系统状态下的客观资源分配计划。本发明使用RUBiS基准,进行了广泛的模拟实验,以验证所提出的DRAW在实现云资源分配的最佳/接近最佳性能方面的有效性。通过DRAW,管理操作的预测准确率可以达到90.69%。此外,在各种工作负载和服务请求的不同场景下,DRAW比其他经典方法高出3~13%。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (5)
1.一种面向负载-时间窗口的基于DQN云软件资源自适应分配方法,其特征在于,包括如下步骤:
步骤S1、通过历史运行数据构造DQN模型的训练集,训练集包括某时刻的负载时间窗口、虚拟机资源配置、系统QoS值以及该时刻的目标资源分配方案,根据训练集,使用DQN算法训练管理操作Q值预测模型,管理操作Q值预测模型可以评估不同系统状态下管理操作的Q值;
步骤S2、在运行时,使用步骤S1中得到的管理操作Q值预测模型,根据当前负载时间窗口、当前虚拟机资源配置以及相应的QoS,预测不同管理操作的Q值,然后,通过比较不同管理操作的Q值来选择管理操作;重复上述过程,通过反馈迭代逐步找到目标资源分配方案。
2.根据权利要求1所述的面向负载-时间窗口的基于DQN云软件资源自适应分配方法,其特征在于,步骤S1中,使用DQN算法训练管理操作Q值预测模型的具体实现方式如下:
首先,随机初始化网络参数;其次,使用DQN算法对每条训练数据管理操作的Q值进行评估,训练过程持续,直到遍历完成所有训练集;第三,根据训练数据初始化scur,如果初始状态scut不是目标状态sobj,则根据当前的Q值使用∈-greedy算法从动作空间A中选择一个动作a;然后,通过使用公式(1)计算动作a的奖励r;生成下一步对应的状态,用s′表示;如果执行动作a后,状态不属于合法状态范围,则跳过本轮训练;第四,使用mini-batch方法从重放内存中随机收集示例,并根据损失函数训练DQN来更新神经网络的权重和偏差;每K步更新一次神经网络的参数;然后,scur被s′替换,状态转换发生;最后,神经网络持续更新,直到所有数据集都训练完成;
其中sobj定义为一个客观的资源分配计划,动作a(a∈A)代表一个管理操作,如果在当前资源分配方案scur下采取行动a找到目标资源分配方案sobj,则获得10的奖励;如果不在可选的状态集合sopt中的未知资源分配方案由在当前资源分配方案scur下采取行动a,则获得-1的奖励;在其他情况下,采取任何行动都不会产生奖励。
5.根据权利要求1所述的面向负载-时间窗口的基于DQN云软件资源自适应分配方法,其特征在于,步骤S2具体实现如下:
首先,在资源调整过程中,算法根据输入的当前运行时环境状态,调用管理操作Q值预测模型来获取所有管理操作对应的Q值集合Q_values;如果管理操作被认为是非法的,相应的Q值将被I索引;接下来,如果所有合法管理操作的Q值小于或等于预定义的阈值P,或者执行管理操作后的资源配置曾出现,认为找到了客观的资源分配方案,不需要再进行任何管理操作;否则,将执行具有最小Q值的管理操作,并不断寻求客观的资源分配计划;同时,将每一步的资源配置都保存在VM_List中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111472211.1A CN114138416A (zh) | 2021-12-03 | 2021-12-03 | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111472211.1A CN114138416A (zh) | 2021-12-03 | 2021-12-03 | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114138416A true CN114138416A (zh) | 2022-03-04 |
Family
ID=80388047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111472211.1A Pending CN114138416A (zh) | 2021-12-03 | 2021-12-03 | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138416A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI805257B (zh) * | 2022-03-24 | 2023-06-11 | 先智雲端數據股份有限公司 | 根據強化學習的預測來優化資源配置的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170032245A1 (en) * | 2015-07-01 | 2017-02-02 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and Methods for Providing Reinforcement Learning in a Deep Learning System |
CN110737529A (zh) * | 2019-09-05 | 2020-01-31 | 北京理工大学 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
CN112052071A (zh) * | 2020-09-08 | 2020-12-08 | 福州大学 | 强化学习和机器学习相结合的云软件服务资源分配方法 |
CN112819253A (zh) * | 2021-03-02 | 2021-05-18 | 华东师范大学 | 一种无人机避障和路径规划装置及方法 |
CN113641445A (zh) * | 2021-07-02 | 2021-11-12 | 山东师范大学 | 基于深度确定性策略的云资源自适应配置方法及系统 |
-
2021
- 2021-12-03 CN CN202111472211.1A patent/CN114138416A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170032245A1 (en) * | 2015-07-01 | 2017-02-02 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and Methods for Providing Reinforcement Learning in a Deep Learning System |
CN110737529A (zh) * | 2019-09-05 | 2020-01-31 | 北京理工大学 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
CN112052071A (zh) * | 2020-09-08 | 2020-12-08 | 福州大学 | 强化学习和机器学习相结合的云软件服务资源分配方法 |
CN112819253A (zh) * | 2021-03-02 | 2021-05-18 | 华东师范大学 | 一种无人机避障和路径规划装置及方法 |
CN113641445A (zh) * | 2021-07-02 | 2021-11-12 | 山东师范大学 | 基于深度确定性策略的云资源自适应配置方法及系统 |
Non-Patent Citations (1)
Title |
---|
刘浩源: "云游戏自适应资源分配方法研究", 中国优秀硕士论文电子期 信息科技辑, no. 3, 12 March 2021 (2021-03-12) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI805257B (zh) * | 2022-03-24 | 2023-06-11 | 先智雲端數據股份有限公司 | 根據強化學習的預測來優化資源配置的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Self-adaptive resource allocation for cloud-based software services based on iterative QoS prediction model | |
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN112052071B (zh) | 强化学习和机器学习相结合的云软件服务资源分配方法 | |
CN110138612A (zh) | 一种基于QoS模型自校正的云软件服务资源分配方法 | |
CN107948083B (zh) | 一种基于增强学习的sdn数据中心拥塞控制方法 | |
Kaur et al. | Deep‐Q learning‐based heterogeneous earliest finish time scheduling algorithm for scientific workflows in cloud | |
CN111314120A (zh) | 基于迭代QoS模型的云软件服务资源自适应管理框架 | |
Chen et al. | Resource allocation with workload-time windows for cloud-based software services: a deep reinforcement learning approach | |
Che et al. | A deep reinforcement learning approach to the optimization of data center task scheduling | |
CN113485826B (zh) | 一种边缘服务器负载均衡方法、系统 | |
Bahrpeyma et al. | An adaptive RL based approach for dynamic resource provisioning in Cloud virtualized data centers | |
CN111290831B (zh) | 一种云计算基于强化学习的虚拟机迁移方法 | |
CN111176784B (zh) | 一种基于极限学习机和蚁群系统的虚拟机整合方法 | |
Supreeth et al. | Hybrid genetic algorithm and modified-particle swarm optimization algorithm (GA-MPSO) for predicting scheduling virtual machines in educational cloud platforms | |
CN115934333A (zh) | 基于历史数据感知的云计算资源调度方法及调度系统 | |
Kafle et al. | Intelligent and agile control of edge resources for latency-sensitive IoT services | |
CN113641445B (zh) | 基于深度确定性策略的云资源自适应配置方法及系统 | |
CN114138416A (zh) | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 | |
Malti et al. | A new hybrid multi-objective optimization algorithm for task scheduling in cloud systems | |
CN112380006A (zh) | 一种数据中心资源分配方法及装置 | |
CN113543160A (zh) | 5g切片资源配置方法、装置、计算设备及计算机存储介质 | |
Huang et al. | Learning-aided fine grained offloading for real-time applications in edge-cloud computing | |
CN116185584A (zh) | 一种基于深度强化学习的多租户数据库资源规划与调度方法 | |
CN112632615B (zh) | 基于混合云环境的科学工作流数据布局方法 | |
Al Muktadir et al. | Prediction and dynamic adjustment of resources for latency-sensitive virtual network functions |
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 |