2. 中国科学院计算技术研究所, 北京 100190;
3. 中国科学院大学 人工智能学院, 北京 100049
2. Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China;
3. School of Artificial Intelligence, University of Chinese Academy of Sciences, Beijing 100049, China
开放科学(资源服务)标志码(OSID):
信息技术水平的提高使得计算模式由最初集中交付式发展为云计算模式[1],云计算[2]是新一轮IT革命的标志性成果,已经成为社会创新发展的战略性关键技术和平台。作为云计算物理承载基础的数据中心,近年来其不论在规模还是数量上都得到了快速发展,并已被相关行业广泛采用,但是,数据中心中的许多问题尚未得到完全解决,行业应用中仍面临各种问题和挑战[3-4],这些问题集中体现在2个方面,一是数据中心给运营商带来了日益庞大的电力开销,相关统计结果表明[5],2014年美国数据中心电能消耗总量占据全美全年总耗电量的1.8%,预计到2020年,全球数据中心耗电量将占到当年全球总耗电量的8%[6];二是大型数据中心给社会带来了沉重的环保压力,全球环保组织(GeSI)估计,到2020年数据中心温室气体排放总量将占到IT领域总排放量的18%[7]。因此,在提供高质量服务的同时如何降低数据中心对资源的消耗以及对环境的负面影响,成为近年来学术界和工业界广泛关注的焦点。
目前,常见的降低数据中心能耗的措施是根据数据中心当前负载情况进行硬件资源调度,使得数据中心在保证服务质量的前提下尽可能高效使用硬件资源,将空转服务器进行休眠或者关机从而降低能耗。由于到达数据中心的任务量是一个随机值,随时都在发生变化,因此主机负载也在不断变化,准确预测负载就成为降低数据中心硬件资源消耗的关键所在。
与传统的网格系统或HPC相比[8],承载云计算的数据中心任务提交频率较高,且任务长度大约只有网格计算任务长度的
本文建立一种基于深度循环神经网络编码器-解码器(GRU-ED)的多步在线预测模型。设计一个监控模块,对在线模型输出进行实时监控,从而及时调整学习速率并回滚到历史状态。利用实际数据中心所监控的数据进行实验,以验证多步在线预测模型的可行性。
1 相关工作准确预测主机负载在诸如动态资源分配、虚拟机调度和能耗管理等方面具有重要意义,因此,近年来很多学者对主机负载预测进行了研究。主机负载预测主要分为单步预测和多步预测,多步预测指通过一段给定的历史信息一次性预测未来的多个主机负载值,从而避免使用多次迭代所造成的误差累计。
针对传统网格系统或HPC系统,有很多有效的主机预测方法。文献[9]提出一种在网格系统中基于马尔科夫模型的单步主机负载预测方法。文献[11]建立一种基于卡尔曼滤波和自回归的多步预测模型,其能够预测未来多步主机负载。文献[10]将人工神经网络(ANN)应用于主机负载预测任务,与线性模型和基于趋势的模型相比,ANN将主机负载预测的误差和标准差分别降低了60%和70%。
与网格系统相比,数据中心的任务请求更加频繁且任务长度更短,主机负载具有更大的波动,导致基于传统网格系统的主机负载预测方法很难在数据中心环境中取得较好的预测性能。如文献[14]提出的线性回归模型、文献[15]提出的差分整合移动平均自回归模型(ARIMA)等,均无法从历史负载数据中提取足够的特征信息,导致预测精度较低。
近年来,数据中心中主机负载预测取得了很多成果。文献[16]提出一种基于支持向量机(SVM)的预测模型,该模型利用混合遗传算法和粒子群算法来选择最优参数,从而训练得到一个性能较好的预测模型。文献[17]提出一种混合模型HARMA-E,其使用ARMA模型实现预测,然后使用ENN模型对ARMA模型的误差进行预测,最终得到一个修正误差之后的预测值,但是在实际使用中,ENN可能会出现梯度消失或梯度爆炸问题而导致算法性能不稳定。文献[18]提出一种基于朴素贝叶斯的预测模型,为了能够充分刻画主机负载波动程度,该文设计9个用来描绘主机负载波动的特征。但是,该模型并未充分考虑历史信息对当前负载可能产生的影响,并且手动设计的特征很难真正刻画主机负载的实际波动情况,因此,该模型实际中只使用了其中的2个特征进行训练。文献[19]提出一种基于ESN(Echo State Network)的多步主机负载预测方法,ESN的基本思想是使用随机、大型且稀疏的动态矩阵作为非线性高维扩展并同时对输入进行长期存储。文献[12]提出基于长短期记忆(LSTM)网络的负载预测模型,其大幅提升了模型在多步预测中的性能。
以上研究都重点关注离线模型训练,即已经存在足够多的训练数据,通过改变模型架构或设计新的预测方法来提升预测精度。然而,不同数据中心所承担的任务特征不同,例如计算密集型和IO密集型数据中心所采用的硬件存在区别,同时,位于不同地点的数据中心也会受到物理环境的影响,如气候、海拔等。因此,不存在一种在所有数据中心中都通用的预测模型,同一个模型在不同数据中心中进行切换往往需要重新训练。此外,离线模型所有训练工作都在线下完成,需要事先采集到足够多的历史数据,但由于数据中心长时间运行,导致影响数据中心主机负载的因素有很多,如季节、年份、硬件损耗程度等,这些因素都需要模型具有一定的自适应性,自动调节模型参数以适应变化的环境。
为解决上述问题,本文设计一种基于深度循环神经网络编码器-解码器的多步在线预测模型。使用编码器来学习序列历史信息,利用在线学习特性使得模型可以在进行简单预训练之后部署到数据中心,利用数据中心实时数据对模型进行快速调整以适应数据中心的特定环境。此外,模型使用解码器对序列进行预测,利用GRU降低计算复杂度,并设计一个实时监控模块对模型预测结果进行评估,灵活调整模型学习率并在必要时使得模型回滚到历史状态。
2 数据中心主机负载多步在线预测模型 2.1 模型框架如图 1所示,在线预测模型主要包含历史负载信息、预训练模型、负载采集系统、在线模型和监控系统5个相关模块。历史负载信息是用于预训练的少量数据中心主机负载信息。预训练模型是通过少量负载信息进行训练的通用预测模型,预训练在线部署后成为在线模型。负载采集系统是数据中心主机负载采集模块,用来采集并存储主机相关负载信息,并将处理后的信息实时传递给在线模型。监控模块对在线模型输出进行实时评估,并对在线模型做出相应调整。
![]() |
Download:
|
图 1 在线预测模型框架 Fig. 1 Framework of online prediction model |
给定一段历史负载信息,通过一个循环神经网络(RNN)输出下一个时间点或多个时间点的负载信息。其中,历史负载信息被固定为相同大小,预测值可以是未来一个或多个时间点的负载值或未来一段时间的平均值。为了更好地刻画主机负载的历史信息,本文设计一个循环门单元-编码器解码器(GRU-ED)模型,其结构如图 2所示。
![]() |
Download:
|
图 2 GRU-ED模型结构 Fig. 2 GRU-ED model structure |
本文所使用的GRU和文献[12]所使用的LSTM同属于循环神经网络(RNN)。本质上而言,与主机负载相关的信息是一个多维时间序列,序列中每个点的维度与所使用的特征个数相关,如果仅使用历史负载信息,则每个点的维度为1;如果在使用历史负载信息的同时也使用CPU和内存信息,则每个点的维度为3。假设一个长度为
$ \left({\widehat{x}}_{n+1}, {\widehat{x}}_{n+2}, \cdots , {\widehat{x}}_{n+m}\right)=f({x}_{n-t+1}, {x}_{n-t+2}, \cdots , {x}_{n}) $ | (1) |
不同的历史负载信息将影响负载预测结果,因此,使用MLP对未来负载进行预测很难达到理想效果。RNN在不同历史节点之间使用共享参数,并使用一个隐藏层记录历史信息,使得模型可以通过优化算法针对不同历史信息选择不同权重。
图 3所示为RNN结构,其中,
![]() |
Download:
|
图 3 RNN结构 Fig. 3 Structure of RNN |
RNN模型前向传播的公式如下:
$ {h}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}(W{h}_{t-1}+U{x}_{t}) $ | (2) |
$ {o}_{t}=V{h}_{t} $ | (3) |
RNN在不同历史节点之间使用共享参数
在一般情况下,可以使用BPTT(Backpropagation Through Time)[20]算法对RNN进行训练。然而,传统的RNN在序列达到一定长度时会出现梯度消失或梯度爆炸问题,导致信息不能很好地向前传递。
2.3 循环门单元GRU本文选择GRU代替传统RNN作为训练模型。与传统RNN模型相比,GRU使用不同的Cell替代
![]() |
Download:
|
图 4 GRU Cell结构 Fig. 4 GRU Cell structure |
与RNN类似,GRU当前节点的输出是由输入和蕴含历史信息的隐藏状态生成的。但是,由于增加了门限,因此历史信息
$ {r}_{t}=\sigma ({W}_{ir}{x}_{t}+{b}_{ir}+{W}_{hr}{h}_{t-1}+{b}_{hr}) $ | (4) |
$ {z}_{t}=\sigma ({W}_{iz}{x}_{t}+{b}_{iz}+{W}_{hz}{h}_{t-1}+{b}_{hz}) $ | (5) |
$ {n}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}({W}_{in}{x}_{t}+{b}_{in}+{r}_{t}\otimes ({W}_{hn}{h}_{t-1}+{b}_{hn}\left)\right) $ | (6) |
$ {h}_{t}=(1-{z}_{t})\otimes {n}_{t}+{z}_{t}\otimes {h}_{t-1} $ | (7) |
其中:
图 5所示为编码器-解码器模型结构,其中,Encoder是编码器,用来学习完整的历史表示,通过训练可以选择要学习的历史信息,编码器的输出
![]() |
Download:
|
图 5 编码器-解码器模型结构 Fig. 5 Encoder-Decoder model structure |
本文设计一个在线模型监控系统,用以实时监控模型预测性能,根据预测模型的预测性能及时调整模型学习率,并对模型历史快照进行定时存储,在必要时将模型回滚到某个历史快照。
本文采用滑动平均值作为判定模型当前预测性能的指标,滑动平均值表达式如下:
$ {v}_{t}=\beta {v}_{t-1}+\left(1-\beta \right){\theta }_{t} $ | (8) |
其中:
$ {v}_{t}=\beta {v}_{t-1}+\left(1-\beta \right){\left({\widehat{y}}_{t}-{y}_{t}\right)}^{2} $ | (9) |
在系统中设置一个可接受的阈值
本次实验采用Google于2011年开源的数据中心监控数据集[13],该数据集记录了超过12 000台服务器在一个月内的详细使用情况,其中包含超过2.5×107个任务的提交时间和完成时间以及主机在此期间的详细使用情况。和其他预测方法类似[12, 18],本文实验将第1天~第20天的数据作为训练集,第21天~第26天的数据作为验证集,剩下的数据作为测试集。其中,训练集用来训练模型参数,验证集用来选择模型超参数和防止过拟合发生,当选择好模型超参数之后,训练集和验证集一起训练最终的模型,测试集用来检验模型性能。Google所开源的数据中心数据包含CPU利用率、内存利用率、磁盘利用率等在内的18项监控数据。为了与其他模型作比较,本文只采用主机CPU利用率历史监控信息,并且只对主机负载进行预测。图 6所示分别为Google数据中心29 d和12 h的主机负载信息,通过图 6能够看出,相较于传统网格系统,数据中心主机负载具有较大的方差和噪音。
![]() |
Download:
|
图 6 主机负载的变化情况 Fig. 6 Changes of host load |
本文使用Pytorch构建模型,CPU为Intel® Xeon® Silver 4110,GPU为二路NVIDIA GeForce GTX 1080Ti (11 GB),内存32 GB,在Ubuntu 16.04.10环境下进行实验,将本文所提模型与ESN模型以及当前最优的LSTM模型进行对比。
3.3 结果分析实验对Google数据中心中的12 000台机器进行随机采样,选取其中的1 024台机器进行实验,对未来多步进行负载数值预测。与其他模型相同,本文模型采用MSE(Mean Square Error)评估预测结果,MSE具体计算公式如下:
$ {M}_{\mathrm{M}\mathrm{S}\mathrm{E}}=\frac{1}{N}\sum \limits_{i=1}^{N}({o}_{i}-{y}_{i}{)}^{2} $ | (10) |
其中:
![]() |
Download:
|
图 7 隐藏层层数对MSN值的影响 Fig. 7 Influence of the number of hidden layers on MSN values |
图 8所示为GRU-ED、LSTM、ESN 3种模型在不同预测步长下的MSE情况。从图 8可以看出,随着预测步长的增加,模型性能有所下降,但本文GRU-ED模型性能较传统LSTM和ESN模型有一定提升,原因是本文所使用的编码器-解码器模型能够更好地刻画历史数据的波动情况以及主机历史负载情况。
![]() |
Download:
|
图 8 3种模型的预测性能对比 Fig. 8 Comparison of prediction performance of three models |
本文构建一种基于深度循环神经网络编码器-解码器的多步在线预测模型,该模型采用一定长度的主机负载历史信息实时预测未来多步主机负载值,并通过真实数据中心主机负载数据验证其可行性。实验结果表明,该模型具备一定的自适应性,在对未来多个时间点的负载信息进行预测时,其预测准确性优于ESN和LSTM模型。但是,本文只考虑主机CPU利用率这一个维度的历史信息,影响主机负载的因素还包括内存和网络等,因此,下一步将结合主机所监控的其他维度信息提升模型的预测性能。
[1] |
STANISIC L, THIBAULT S, LEGRAND A, et al. Modeling and simulation of a dynamic task-based runtime system for heterogeneous multi-core architectures[C]//Proceedings of European Conference on Parallel Processing. Berlin, Germany: Springer, 2014: 50-62.
|
[2] |
MITTAL S, VETTER J S. A survey of CPU-GPU heterogeneous computing techniques[J]. ACM Computing Surveys, 2015, 47(4): 1-35. |
[3] |
Research report on China's IDC industry development in 2018-2019[EB/OL]. [2020-05-02]. http://www.idcquan.com/Special/2019baogao/. (in Chinese) 2018-2019年中国IDC产业发展研究报告[EB/OL]. [2020-05-02]. http://www.idcquan.com/Special/2019baogao/. |
[4] |
ZHOU Y Z, ZHANG D. Near-end cloud computing: opportunities and challenges in the post-cloud computing era[J]. Chinese Journal of Computers, 2019, 42(4): 677-700. (in Chinese) 周悦芝, 张迪. 近端云计算: 后云计算时代的机遇与挑战[J]. 计算机学报, 2019, 42(4): 677-700. |
[5] |
SHEHABI A, SMITH S, SARTOR D, et al. United states data center energy usage report[EB/OL]. [2020-05-02]. https://datacenters.lbl.gov/sites/all/files/DataCenterEnergyReport2016_0.pdf.
|
[6] |
KOOMEY J. Growth in datacenter electricity use 2005 to 2010[EB/OL]. [2020-05-02]. https://alejandrobaros.com/wp-content/uploads/old/Growth_in_Data_Center_Electricity_use_2005_to_2010.pdf.
|
[7] |
ANDERSON D, CADER T, DARBY T, et al. A framework for data center energy productivity[EB/OL]. [2020-05-02]. https://www.greenbiz.com/sites/default/files/document/GreenGrid-Framework-Data-Center-Energy-Productivity.pdf.
|
[8] |
DI S, KONDO D, CIRNE W. Characterization and comparison of cloud versus grid workloads[C]//Proceedings of 2012 IEEE International Conference on Cluster Computing. Washington D.C., USA: IEEE Press, 2012: 230-238.
|
[9] |
AKIOKA S, MURAOKA Y. Extended forecast of CPU and network load on computational grid[C]//Proceedings of IEEE International Symposium on Cluster Computing and the Grid. Washington D.C., USA: IEEE Press, 2004: 765-772.
|
[10] |
DUY T V T, SATO Y, INOGUCHI Y. Improving accuracy of host load predictions on computational grids by artificial neural networks[J]. International Journal of Parallel, Emergent and Distributed Systems, 2011, 26(4): 275-290. DOI:10.1080/17445760.2010.481786 |
[11] |
WU Y, YUAN Y, YANG G, et al. Load prediction using hybrid model for computational grid[C]//Proceedings of 2007 IEEE/ACM International Conference on Grid Computing. Washington D.C., USA: IEEE Press, 2007: 235-242.
|
[12] |
SONG B, YU Y, ZHOU Y, et al. Host load prediction with long short-term memory in cloud computing[J]. The Journal of Supercomputing, 2018, 74(12): 6554-6568. DOI:10.1007/s11227-017-2044-4 |
[13] |
REISS C, WILKES J, HELLERSTEIN J L. Google cluster-usage traces: format+ schema[EB/OL]. [2020-05-02]. https://doc.xuehai.net/b6b3e8bbdda2ddc251146efd5.html.
|
[14] |
GUENTER B, JAIN N, WILLIAMS C. Managing cost, performance, and reliability tradeoffs for energyaware server provisioning[EB/OL]. [2020-05-02]. https://www.microsoft.com/en-us/research/wp-content/uploads/2011/06/guenter11managing.pdf.
|
[15] |
ZHANG Q, ZHANI M F, ZHANG S, et al. Dynamic energy-aware capacity provisioning for cloud computing environments[C]//Proceedings of the 9th International Conference on Autonomic Computing. New York, USA: ACM Press, 2010: 145-154.
|
[16] |
BARATI M, SHARIFIAN S. A hybrid heuristic-based tuned support vector regression model for cloud load prediction[J]. The Journal of Supercomputing, 2015, 71(11): 4235-4259. DOI:10.1007/s11227-015-1520-y |
[17] |
JIANG W, CHEN Y Z, HUANG Q C, et al. Workload forecasting method in cloud[J]. Computer Science, 2018, 45(6A): 270-274. (in Chinese) 江伟, 陈羽中, 黄启成, 等. 一种云环境下的主机负载预测方法[J]. 计算机科学, 2018, 45(6A): 270-274. |
[18] |
DI S, KONDO D, CIRNE W. Host load prediction in a Google compute cloud with a Bayesian model[C]//Proceedings of International Conference on High Performance Computing, Networking, Storage and Analysis. Washington D.C., USA: IEEE Press, 2021: 12-23.
|
[19] |
YANG Q, ZHOU Y, YU Y, et al. Multi-step-ahead host load prediction using autoencoder and echo state networks in cloud computing[J]. The Journal of Supercomputing, 2015, 71(8): 3037-3053. DOI:10.1007/s11227-015-1426-8 |
[20] |
WERBOS P J. Backpropagation through time: what it does and how to do it[J]. Proceedings of the IEEE, 1990, 78(10): 1550-1560. DOI:10.1109/5.58337 |