随着云计算、无线传感器技术等新一代信息技术的快速发展, 基于物联网支持的大数据应用遍及工业、医学、军事、教育及城市管理等各个领域[1]. 例如, 无人驾驶技术通过传感器融合技术、人工智能、定位系统、自动控制系统等的协同工作, 实现汽车的自动驾驶. 当无人驾驶汽车行驶时, 需要在高速动态下对周围环境做出迅速反应, 所以动态任务的响应时间是一个极其重要的指标[2]. 由于传统的云计算难以满足地理上分散分布的物联网设备对数据处理低时延、高带宽和实时决策的高需求, 雾计算应运而生, 通过将计算和存储能力配置在网络边缘对时延敏感型任务进行及时的处理, 从而减少网络数据传输量并降低时延, 云雾层的协同计算为超高密度的信息接入提供了便捷[3]. 作为雾计算核心基础设施, 近年来我国数据中心规模随着海量数据的产生而不断扩大, 2019年全国数据中心行业耗电总量约为600亿–700亿千瓦时, 预计2030年总能源消耗量将在2019年基础上翻一番[4], 数据中心成为能源消耗和碳排放大户.
而数据中心的资源利用率低是造成数据中心高能耗的主要原因之一, 据统计数据显示处于空闲状态的主机要消耗其能耗峰值的70%, 大多数活动主机的平均CPU利用率仅为10%–50%[5]. 因此, 通过合理的资源调度提高数据中心的资源利用率并满足用户的低时延需求对于数据中心节能、推进可持续发展有着重要意义.
应用任务可以通过容器技术和容器自动编排工具实现资源虚拟化和服务自动化部署[6]. 容器和虚拟机都是虚拟化技术, 与虚拟机相比, 容器更加轻量便于在不同操作平台上快速部署. 我们将应用任务实例化为Docker容器, 部署到云雾计算节点上, 利用检查点/恢复技术[7]实时迁移容器来调整容器与物理主机之间的映射关系. 如何合理地调度容器, 充分利用雾计算资源, 本质是一个资源分配调度问题. 针对此问题目前已有一些相关研究. Beloglazov等[8]将虚拟机整合问题分解为主机过载检测、主机欠载检测、虚拟机选择和虚拟机放置4个子问题, 并提出了多种自适应启发式虚拟机整合算法, 验证了其在数据中心节能和保证用户服务质量方面的优越性. 这类启发式算法简单高效, 但是相对静态, 不适用于任务负载动态波动的环境. 为解决这个问题, Han等[9]将虚拟机的动态资源管理问题转化为求解大规模Markov决策过程, 以最小化数据中心能耗为目标, 促进了虚拟机迁移决策的准确性. 然而, 这类基于状态模型的调度决策方法很难对实际的云计算系统建立精确的状态模型, 并且随着云计算系统规模的扩大, 将导致状态空间爆炸. Liu等[10]针对任务到达、环境状态及奖励的不确定性, 提出了悲观-乐观在线调度方法(pessimistic-optimistic online dispatch, POND), 利用上限置信区间算法来最大化估计累计奖励, 基于虚拟机队列悲观地跟踪约束违反, 应用最大权重方法进行虚拟机调度, 使系统达到最大化奖励和避免违反约束之间的平衡. 在雾计算框架基础上, 戴志明等[11]为提高智能工厂的数据处理效率和资源使用率, 提出改进的遗传算法(GA)对智能工厂中容器应用进行调度分配, 将资源分配问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程, 进而寻求最优解. 韩奎奎等[12]针对雾环境下用户的高服务质量需求, 使用神经网络模型来近似目标值, 并利用改进的遗传算法进行最优任务调度决策, 为资源调度方法提供了新的借鉴. 但遗传算法等进化方法属于无梯度优化方法[13], 通常需要更长的时间来收敛. 此外还有一些研究针对雾计算网络的其他性能进行优化, 如任务完成率、公平性和信息安全等[14-16]. 因此, 目前仍缺少一种在不稳定环境中快速适应, 同时兼顾低能耗和低响应时间的资源调度方法.
基于以上研究, 为了对雾计算资源调度进行准确、可扩展的建模, 同时加快模型的收敛速度, 本文在雾计算基础架构上, 提出了一种基于深度强化学习的容器整合方法(container consolidation based on deep reinforcement learning, DR-CI). 该方法利用神经网络近似器以数据中心基础设施能耗和平均响应时间最小化为目标进行精确建模, 基于A2C算法构建了从系统资源状态到容器迁移策略的端到端决策模型, 提出自适应多目标奖励函数, 智能体通过与环境的实时交互、学习产生最优的调度策略, 利用基于梯度的反向传播算法加快决策模型的收敛速度, 从而获得能耗和响应时间的最优性能. 得益于强化学习本身的自主学习能力, DR-CI还能支持不同场景下的目标优化.
1 问题描述与建模 1.1 雾系统架构本文考虑一个标准的分布式异构的雾计算环境, 如图1所示, 它主要由雾计算资源层、雾资源管理层和物联网层组成. 雾计算资源层由云子层和雾子层的计算节点组成, 云子层具有丰富的计算资源能够处理和存储大量数据, 但距离终端用户远, 通信延迟较高; 雾子层的主机更接近终端用户, 与雾代理和网关设备的通信延迟低, 但计算资源较少, 本文考虑不同层之间的主机通信延迟, 忽略同一层的主机之间的通信延迟. 雾计算资源层由雾资源管理层控制, 雾资源管理层由数据库、智能体、资源监测服务和容器编排服务等模块组成. 智能体接受来自物联网层网关设备的任务请求, 根据优化目标周期性地做出容器整合决策, 将时延敏感、计算量小的任务根据调度决策分配到雾层进行处理, 将时延不敏感、计算量大的任务根据调度决策分配到云层进行处理.
1.2 动态任务负载模型
用户在任意时刻产生任务请求, 且任务对CPU、RAM、网络带宽和时延的需求随着终端设备的移动性而不断发生变化. 将一天24 h以
1.3 问题描述
在数据中心, 任务运行在容器实例上, 所有容器部署在主机上. 任务执行后, 销毁它所对应的容器实例, 释放资源. 数据中心的主机是异构的, 假设在基础设施层共有N台主机, 主机集合表示为
调度器定义为系统状态到调度决策之间的映射模型:
$ stat{e_t}\xrightarrow{{\max \sum\limits_t {rewar{d_t}} }}actio{n_t} $ | (1) |
研究表明, 主机的电能消耗主要集中在CPU上, 且主机的功率与其CPU利用率呈线性关系[17]. 在任意调度间隔
$ UR(h_i^t) = U(h_i^t)/C({h_i}) $ | (2) |
主机的实时功率情况可根据其CPU利用率进行线性表示, 如式(3)所示:
$ P(h_i^t) = P_{{h_i}}^{{\rm{idle}}} + (P_{{h_i}}^{\max } - P_{{h_i}}^{{\rm{idle}}}) \times UR(h_i^t) $ | (3) |
其中,
$ {\textit{TEC}}_t^H = \sum\nolimits_{{h_i} \in H} {{\alpha _{{h_i}}}\int_t^{t + \Delta } {{P_{{h_i}}}} } (t)dt $ | (4) |
在执行某个任务的过程中使用到的所有容器应用定义为集合
$ {\textit{TET}}_t^{{L_{t + 1}}} = \sum\nolimits_{{a_j} \in {L_{t + 1}}} {\sum\nolimits_{{c_i} \in C} {(destroyTime - startTime)} } $ | (5) |
若容器分配到不同的节点, 则要进行迁移, 迁移时间包括云雾节点间的通信延迟和传输容器的时间两部分. 忽略同一层(云子层或雾子层)上主机之间的通信延迟, 只考虑不同层之间主机的通信延迟. 容器传输的时间基于网络带宽和容器RAM大小. 在调度间隔
$ \begin{split} &{\textit{TMT}}_t^{{L_{t + 1}}} =\\ &\sum\nolimits_{{a_j} \in {L_{t + 1}}} {\sum\nolimits_{{c_i} \in C} {y(i)} } \left( {\frac{{B{W_{{h_{{c_i}}}}}}}{{RA{M_{{c_i}}}}} + |latenc{y_{{{\hat h}_{{c_i}}}}} - latenc{y_{{h_{{c_i}}}}}|} \right) \end{split} $ | (6) |
因此在调度间隔
$ {\textit{TRT}}_t^{{L_{t + 1}}} = {\textit{TET}}_t^{{L_{t + 1}}} + {\textit{TMT}}_t^{{L_{t + 1}}} $ | (7) |
DR-CI方法中容器整合决策模型的基本架构如图3所示. 该方法基于A2C算法进行模型优化, 智能体包括演员(actor)和评论家(critic)这2部分. 演员根据数据中心资源状态和动态负载需求产生动作策略, 评论家根据当前环境状态计算状态价值, 容器编排服务模块执行演员做出的动作策略后, 数据中心计算此次容器迁移所导致的服务质量等性能变化所对应的奖励, 评论家根据状态价值和奖励估算出动作状态价值, 若动作状态价值大于状态价值, 则说明该动作策略是积极的; 若动作状态价值小于状态价值, 则说明该动作策略是消极的. 其中, 状态价值指从当前状态开始到结束的期望奖赏; 动作状态价值指在当前状态容器编排服务模块执行演员给出的容器整合动作后, 能耗和响应时间等指标变化所对应的期望累积折扣奖赏; 我们将动作状态价值与状态价值的差称为优势(advantage). 评论家通过计算优势评估演员决策的良好程度, 随着演员与评论家两个模型的不断交互, 他们各自的角色变得越来越好, 决策模型更加准确
离线训练阶段, 假定当前时刻为t. 资源检测服务检测到环境状态
2.2 模型输入
在各调度间隔
在各调度间隔
$ actio{n_t} = \begin{array}{*{20}{c}} \begin{array}{*{20}{c}} \;\;\;\;\;&{h_0}&{h_1}&\cdots &{h_i} \end{array}\\ \begin{array}{*{20}{c}} {a_0^{}} \\ {a_1^{}} \\ \vdots \\ {a_j^{}} \end{array} \left[ {\begin{array}{*{20}{c}} {h_0^0}&{h_0^1}&\cdots &{h_0^i} \\ {h_1^0}&{h_1^1}&\cdots &{h_1^i} \\ \vdots &\vdots &\ddots &\vdots \\ {h_j^0}&{h_j^1}&\cdots &{h_j^i} \end{array}} \right]\end{array}, \;{a_j} \in {A_t}, {h_i} \in H $ | (8) |
其中,
为降低雾数据中心的能耗并满足用户的低时延要求, 在学习模型中, 奖励函数
1)平均能源消耗(average energy consumption, AEC). 在任意调度间隔
$ AEC_t^H = \dfrac{{\displaystyle\sum\nolimits_{{h_i} \in H} {{\alpha _{{h_i}}}\int_t^{t + \Delta } {{P_{{h_i}}}(t)dt} } }}{{\displaystyle\sum\nolimits_{{h_i} \in H} {{\alpha _{{h_i}}}P_{{h_i}}^{\max }(\Delta )} }} $ | (9) |
其中, 由于雾节点和云节点能源供应源的异构性, 系数
2)平均响应时间(average response time, ART). 在任意调度间隔
$ ART_t^{{L_{t + 1}}} = \dfrac{{\displaystyle\sum\nolimits_{{a_j} \in {L_{t + 1}}} {{\textit{ResponseTime}}({a_j})} }}{{\left| {{L_{t + 1}}} \right|{{\max }_t}{{\max }_{{a_j} \in {L_{t + 1}}}}{\textit{ResponseTime}}({a_j})}} $ | (10) |
在任意调度间隔
$ \begin{split} rewar{d}_{t}= & -(\alpha \cdot AE{C}_{t-1}+\beta \cdot AR{T}_{t-1})\text{, }\\ & \alpha , \beta \geqslant 0\wedge \alpha +\beta =1 \end{split} $ | (11) |
利用神经网络的优势对目标函数进行精确建模, 并使用基于梯度的方法使其快速收敛. 神经网络分为公共网络、策略网络
3.2 学习策略
特征向量从输入层到演员、评论家的输出, 属于一个神经网络的前向传播; 然后通过基于梯度的反向传播来更新网络参数, 演员、评论家网络的参数训练过程如下.
1)价值网络
$ \left\{\begin{split} & {\nabla _\omega }Loss(\omega ) = {\delta _t} \cdot {\nabla _\omega }v({s_t};\omega ) \\ & \omega \leftarrow \omega - {\gamma _1} \cdot {\delta _t} \cdot {\nabla _\omega }v({s_t};\omega ) \end{split} \right.$ | (12) |
2) 策略网络
$ \begin{split} {\nabla _\theta }J(\theta )& \triangleq [{r_t} + \gamma \cdot v({s_{t + 1}};\omega ) - V({s_t};\omega ] \cdot {\nabla _\theta }\ln \pi ({a_t}|{s_t};\theta ) \\ & = - {\delta _t} \cdot {\nabla _\theta }\ln \pi ({a_t}|{s_t};\theta ) \end{split} $ | (13) |
因此, 策略网络参数
$ \theta \leftarrow \theta - {\gamma _2} \cdot {\delta _t} \cdot {\nabla _\theta }\ln \pi ({a_t}|{s_t};\theta ) $ | (14) |
本文通过A2C算法来完成容器整合决策模型的训练. 训练算法的伪代码如算法1所示.
算法开始阶段, 初始化演员和评论家网络; 初始化一个缓冲池, 用于存放当前状态、动作、下一时刻状态及奖赏; 初始化累计折扣因子(steps 1–3).
本文采用时序差分的学习方法来训练决策模型. 每个回合(steps 4–20), 首先随机产生容器负载和分配决策, 得到环境初始状态
算法1. DR-CI容器调度决策模型训练算法
step 1. 随机初始化策略网络
step 2. 初始化一个重放缓冲池R, 用于存放
step 3. 初始化累计折扣因子
step 4. for episode=1 toK do
step 5. 随机产生任务负载和容器到主机的分配决策
step 6. for t=1 to T do
step 7.
step 8. 策略网络产生调度决策
step 9. 价值网络产生状态价值
step 10. 按高斯分布产生
step 11.
step 12. 计算奖励
step 13. 在R中存储
step 14. 从R中随机采样K个样本;
step 15. 计算
step 16. 计算
step 17.
step 18.
step 19. end for
step 20. end for
4 性能评估 4.1 实验参数通过在PyCharm平台上进行仿真实验与基线方法进行比较. 设定雾计算基础设施层共有50台主机, 云、雾节点数量比为8:2, 基于以往的一些研究经验设定雾节点的延迟时间为3 ms, 云节点的响应时间为76 ms. 此外, 由于云雾环境是异质的, 雾主机和云主机的计算能力有很大的差异, 主机CPU、RAM以及SPEC基准下的平均耗电量参数如表2所示. 模型离线训练过程中, 设定奖励函数中权重
工作负载数据集由运行在BitBrain分布式数据中心的1 750台虚拟机的资源利用指标的真实痕迹组成. 该数据集由每个时间戳(相隔5 min)的工作负载信息组成, 包括请求的CPU内核数量、CPU利用率、请求的RAM与网络(接收/传输)带宽等特征. 基于用户需求的随机性和物联网设备的移动性, 任务的计算量和带宽需求随时间变化. 本文考虑一个动态任务生成模型, 在每个区间
4.3 评估指标
评估指标除前文提出的总能源消耗TEC、平均能源消耗AEC和平均响应时间ART(见第2.4节)外还包括服务水平目标违反率(fraction of service level object violation, SLOV).
服务水平目标违反率SLOV定义如式(15)所示. 其中
$ SLO{V_t} = \frac{{\displaystyle\sum\nolimits_{T \in {L_{t + 1}}} {({\textit{ResponseTime}}(T) - \psi (T))} }}{{\displaystyle\sum\nolimits_{T \in {L_{t + 1}}} {\psi (T)} \times \displaystyle\sum\nolimits_t {|{L_{t + 1}}|} }} $ | (15) |
为验证本文提出的基于深度强化学习的DR-CI方法的有效性, 将其与局部回归-最小迁移时间方法(local regression-minimum migration time, LR-MMT)、中位数绝对偏差-最大关联方法(median absolute deviation-maximum correlation, MAD-MC)、悲观-乐观在线整合方法POND和基于遗传算法的整合方法GA进行比较研究.
从图5可以看出, 在容器整合决策模型离线训练过程中, 平均损失函数不断下降, 并且在第800次迭代开始稳定收敛, 趋近于0, 意味着雾计算中心的性能在不断提高.
图6和图7分别为100个时间间隔内在50个物理节点的总能源消耗和平均能源消耗情况. 如图6所示, DR-CI方法的总能耗最小, 约为0.64 kW·h, POND算法次之, 约为0.68 kW·h. 从图7可以看出, 基线方法中POND方法的平均间隔能耗最少, 约为0.1829 kW·h, LR-MMT方法的平均间隔能耗最好, 约为0.1981 kW·h; DR-CI方法平均间隔能耗约0.1597 kW·h, 比POND低12.7%, 比LR-MMT低19.4%. 这是因为DR-CI方法整体调度更能充分利用计算资源且更稳定.
图8和图9分别为100个时间间隔内在50个物理节点的平均响应时间和服务水平目标违反率情况. 这里响应时间是指从物联网传感器创建任务到网关接收响应的时间, 从图8可以看出, 在基线方法中, MAD-MC方法的平均响应时间最低, 为54.88 s, POND的平均响应时间最高, 达到83.82 s, DR-CI方法平均响应时间为50.76 s, 比MAD-MC方法低7.5%, 比POND方法低39.44%. 又因为响应时间是服务质量的关键指标, 所以如图9所示, 在基线算法中, MAD-MC方法的平均响应时间最低, 其服务水平目标违反率也是基线中最低的为6%, DR-CI的SLOV为4.7%, 要优于其他基线算法.
图10和图11分别为100个时间间隔内完成任务数和各种容器整合方法的决策时长. 如图10所示, DR-CI方法和MAD-MC在特定时间内完成任务数最多. 从图11可以看出, 基线方法中LR-MMT方法由于要进行大量数据拟合的原因, 其决策时间相比其他方法约高出一个数量级, POND和LR-MMT方法决策时间最短, 分别为0.29 s、0.44 s; DR-CI方法次之, 决策时间约为33 s. 这是因为DR-CI方法的决策模型网络结构产生了更多的计算开销.
5 结论
本文针对雾环境任务负载不稳定性、数据中心高能耗以及用户低时延需求等问题提出了一种基于深度强化学习的容器整合方法DR-CI, 构建了直接从系统状态到容器整合的决策模型, 避免了容器整合复杂的中间过程, 增强了使用的灵活性. 基于真实负载数据进行仿真实验, 实验结果表明DR-CI方法能够在降低能耗的同时保证系统服务质量. 未来工作中, 本文计划在真实的雾环境中实现这个模型, 结合实际的任务负载特征来优化容器调度决策模型.
[1] |
段妍婷, 胡斌, 余良, 等. 物联网环境下环卫组织变革研究——以深圳智慧环卫建设为例. 管理世界, 2021, 37(8): 207-224. DOI:10.19744/j.cnki.11-1235/f.2021.0117 |
[2] |
陈晨. 云计算、雾计算和边缘计算在智慧交通中的应用. 数字通信世界, 2019(9): 211. DOI:10.3969/J.ISSN.1672-7274.2019.09.174 |
[3] |
王凌, 吴楚格, 范文慧. 边缘计算资源分配与任务调度优化综述. 系统仿真学报, 2021, 33(3): 509-520. DOI:10.16182/j.issn1004731x.joss.20-0584 |
[4] |
郭丰, 吴越, 王娟. 中国数据中心可再生能源应用发展报告(2020). 北京: 中国电子学会, 2020.
|
[5] |
Liu XC, Wang C, Zhou BB, et al. Priority-based consolidation of parallel workloads in the cloud. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(9): 1874-1883. DOI:10.1109/TPDS.2012.262 |
[6] |
Amaral M, Polo J, Carrera D, et al. Performance evaluation of microservices architectures using containers. Proceedings of the 14th IEEE International Symposium on Network Computing and Applications. Cambridge: IEEE, 2015. 27–34.
|
[7] |
罗艺, 江凌云. 移动边缘计算环境下容器实时迁移方法. 通信技术, 2022, 55(5): 599-604. DOI:10.3969/j.issn.1002-0802.2022.05.008 |
[8] |
Beloglazov A, Abawajy J, Buyya R. Energy-aware resource allocation heuristics for efficient management of data centers for Cloud computing. Future Generation Computer Systems, 2012, 28(5): 755-768. DOI:10.1016/j.future.2011.04.017 |
[9] |
Han ZH, Tan HS, Wang R, et al. Energy-efficient dynamic virtual machine management in data centers. IEEE/ACM Transactions on Networking, 2019, 27(1): 344-360. DOI:10.1109/TNET.2019.2891787 |
[10] |
Liu X, Li B, Shi PY, et al. POND: Pessimistic-optimistic online dispatching. arXiv:2010.09995, 2020.
|
[11] |
戴志明, 周明拓, 杨旸, 等. 智能工厂中的雾计算资源调度. 中国科学院大学学报, 2021, 38(5): 702-711. DOI:10.7523/j.issn.2095-6134.2021.05.015 |
[12] |
韩奎奎, 谢在鹏, 吕鑫. 一种基于改进遗传算法的雾计算任务调度策略. 计算机科学, 2018, 45(4): 137-142. |
[13] |
Wang YK, Wang SL, Yang B, et al. An effective adaptive adjustment method for service composition exception handling in cloud manufacturing. Journal of Intelligent Manufacturing, 2022, 33(3): 735-751. DOI:10.1007/s10845-020-01652-4 |
[14] |
李燕君, 蒋华同, 高美惠. 基于强化学习的边缘计算网络资源在线分配方法. 控制与决策, 2022, 37(11): 2880-2886. DOI:10.13195/j.kzyjc.2021.0561 |
[15] |
葛欣炜, 段聪颖, 陈思光. 基于雾计算的能耗最小化公平计算迁移研究. 计算机技术与发展, 2022, 32(3): 107-113. |
[16] |
杨健. 基于边缘计算信息安全防护技术的研究. 自动化与仪表, 2020, 35(9): 101-104. DOI:10.19557/j.cnki.1001-9944.2020.09.023 |
[17] |
Fan XB, Weber WD, Barroso LA. Power provisioning for a warehouse-sized computer. ACM SIGARCH Computer Architecture News, 2007, 35(2): 13-23. DOI:10.1145/1273440.1250665 |