一种基于V-TGRU模型的资源调度算法
2022-07-25常晓洁张华
常晓洁,张华
(浙江大学信息技术中心,浙江 杭州 310058)
云计算是一种基于可配置网络、存储、服务器、应用软件等计算资源共享池进行计算并按需分配和付费的服务模型[1-4]。云计算环境下的资源分配和调度是云计算服务领域的核心问题。随着云计算技术的不断发展和应用需求的持续提高,云计算环境的复杂性日益加剧,机器选择过程中基于任务应用行为[5]、故障表现[6]、能源效率[7]、亲和性[8]等最优调度算法的影响因素研究正吸引越来越多学者的兴趣。机器学习是依靠过去的经验数据创建模型的能力[9-10],调度算法的优化需通过机器学习组件提高复杂决策的准确性和有效性[11]。文献[12-13]提出了基于决策树、支持向量机、神经网络等经典模型的机器学习算法在云计算场景中的应用。文献[14-15]讨论了应用强化的机器学习算法进行权限管理和资源分配。文献[16-20]分别介绍了针对单一资源变量,如CPU或资源请求输入门控循环单元(gate recurrent unit,GRU)、长短期记忆(long short term memory,LSTM)网络以及改进离散检测GRU(IGRU-SD)算法进行资源预测。上述研究均基于单变量环境下的优化策略,在实际应用过程中则需考虑精度、训练时间、参数量、特性数量和变量之间的关系等。
文献[21]研究了虚拟化服务器集群中电源优化的动态配置方法;文献[22]研究了基于信任驱动和服务质量需求的工作流聚类分析调度方法;文献[23]研究了云计算环境下基于分簇的资源调度算法;文献[24]研究了基于分布式深度学习的多个异构神经网络调度模型。这些方法对云资源的充分调度具有一定借鉴意义,但在任务调度过程中,尚存在大量闲散的、未被利用的计算资源以及任务的反复调度所造成的资源浪费。
针对上述云计算环境下资源调度算法的问题,提出在私有云计算环境下基于机器学习变量传输控制GRU(V-TGRU)模型的资源预测算法。
1 资源预测模型
1.1 数据预处理
1.2 V-TGRU算法模型
GRU算法的记忆较循环神经网络(recurrent neural network,RNN)算法更长,训练速度较LSTM网络算法更快,但仍存在需要预处理数据包和内存使用率高等问题。为此,引入变量门控递归单元,包括1个调整新输入与前内存合并的重置器、1个控制前内存保存的更新门Z。
图1 V-TGRU模型结构Fig.1 V-TGRU model structure
在V-TGRU模型框架中,提出了一种具有双向结构和门控递归单元变量w的增强型V-TGRU网络。首先,将双向结构应用于捕获输出,从而提高GRU模型的表达能力。所采用的加权特征平均法简单地导出了每个时间点带中心双加权方案的平均向量。其由两部分组成:双向GRU输出和加权平均特征。变量w和变量激活指变量w中的权重和激活功能与GRU相同,但V-TGRU中的权重w和激活功能采用二值化表征。此外,V-TGRU用编码器自动进行预处理。编码器中输入的为压缩数据,通常比原始输入数据更规整,从而降低内存占用率,解决GRU算法需要预处理数据包和内存使用率高的问题。
V-TGRU预测模型[25]的算法流程:
输入:采集到的N个实例资源占用情况矢量包Xi={XID,Xlen,Xin,Xout,Xcpu,Xmem,Xnet,Xtk}。
输出:测试数据集的评估结果。
步骤1创建编码器模型。
(1)添加第一个编码器层e1单元的tanh触发;
(2)添加第二个编码器层e2单元的tanh触发。
步骤2创建V-TGRU模型。
(1)添加第一个V-TGRU层l1单元,退出dropout为d1且循环退出dropout为r1;
(2)添加第一个V-TGRU层l2单元,退出dropout为d2且循环退出dropout为r2。
步骤3训练和验证模型。
(1)当训练模型验证集上的误差不满足早停法条件时;
(2)当训练数据集不为空时;
(3)将计算周期数据集作为模型输入;
(4)计算H(p,q)分类交叉熵损失函数;
(5)用随机梯度下降优化算法更新权重和偏差;
(6)用验证集验证输出的训练模型。
步骤4测试模型。
(1)用测试数据集测试已优化的超参数;
(2)返回测试数据集的评估结果。
编码器编码:X=[x1,x2,…,xp]T为编码器的输入数据矢量,为编码器的输出数据矢量。利用tanh激活功能,最终接收的节点值为
用编码器对标准化后的矩阵X和Y编码,得到历史时段占用资源的时间序列矩阵和资源池的性能时间序列矩阵,其中p>q。
为提高训练过程的稳定性和收敛速度,采用批量梯度下降法进行训练,同时,采用误差反向传播法调整参数。对于GRU模型,有2种反向传播方式:用最后一个时刻的值作为输出和用各时刻的平均值作为输出,参数更新式为
其中,Δw(t)为第t次迭代的加权更新,η为算法的学习率,0≤α<1为动量项,J为成本函数。
V-TGRU在最后一个时间点的隐藏输出可代表任务资源的占用情况,但在V-TGRU中,序列中间区域的信息可能会丢失。考虑序列的起始和结束区域对后向GRU和前向GRU的输出贡献很大,因此,引入加权特征平均提供局部特征序列tk的另一种观点。平均特征序列向量为
其中,wk表示迭代权值,k表示随机时间步长索引。为突出中间局部特征的影响,迭代权值设计为
其中,j表示随机时间步长参数量,T表示参数总量。
2 基于预测结果的调度模型
本文提出的基于预测结果的调度模型将在调度过程中结合多实例的现在及未来状态值和资源池的现在及未来状态值、实例调度的网络传输时间以及CPU资源计算时间,以实例调度次数最少化、调度总时间最小以及资源预测调度最精确为调度标准。因此先对资源池和实例进行数据预处理,并将预处理数据输入V-TGRU预测模型,得到预测结果;然后按照矢量参数优先级对实例进行排序,同时将预测后的资源池进行聚类分级,优先调度优先级更高的实例至更优的资源池聚类。调度算法流程如下:
算法(1)~(3),通过聚类方法对资源池进行预处理。(4)~(6),按照截止时间、现在和预测情况对实例进行排序,首先处理截止时间较近、资源情况紧缺的实例。(7)~(10),根据预测的实例运行情况和资源池占用情况,预判传输、调度及运行情况。(11)和(12),汇总预判情况,对实例运行情况进行排序,将最接近截止时间、最急需的实例优先调度到任务负载最少的资源池。
3 实验结果分析
3.1 实验环境
硬件环境:华为RH2288V3,CPU规格E5-2680V4×2,56核,内存 128 GB和384 GB,硬盘规格 800 G[ssd]×12和 6 T[sata,7200 r·min-1]×12,共100个虚拟节点,200个实例,通过观察多个实例的24 h历史数据,整理得到每个实例对应资源需求的时间曲线,描述每个实例每天每个采样点所需的对应资源数量。每隔5 min采集一次,每天288个采集点,连续采集30 d。
3.2 结果分析
3.2.1 预测结果对比
对采集到的数据进行训练和建模,预测数据曲线的走势,并根据预测结果进行资源调度,通过调度实例的精度和 F-测量[26],判断 V-TGRU、GRU、LSTM及IGRU-SD模型预判的准确度。
表1中,“正”表示需要调度的实例;“负”表示不需要调度的实例,TP为实际需要调度,预测也需要调度的实例数;FN为实际需要调度而预测不需要调度的实例数;FP为实际不需要调度而预测需要调度的实例数;TN为实际不需要调度,预测也不需要调度的实例数。
表1 混淆矩阵Table 1 Confusion matrix
4个模型最优、平均及最差状态对比见表2。由表2可知,基于变量门控编码的双向V-TGRU模型较另外3种资源预测模型更准确,也更稳定。
表2 精度与F-测量对比Table 2 Accuracy vs.F-measure
3.2.2 调度结果对比
V-TGRU与GRU、LSTM、IGRU-SD三种资源模型预测下的调度以及不进行预测的自适应调度算法(adaptive scheduling algorithm,ASQ)的对比见图2~图4。通过对比多任务下的调度执行时间、调度等待时间和调度次数,综合评价调度算法的效率。
图2 多任务实例调度执行时间Fig.2 Execution time of multi instance task scheduling
图3 多任务实例调度等待时间Fig.3 Waiting time of multi instance task scheduling
图4 多任务实例调度次数Fig.4 Times of multi instance task scheduling
由图2~图4可知,随着实例数的逐渐增多,4种预测调度算法和ASQ的调度执行时间呈增加趋势,但每个任务的平均调度执行时间均呈不同程度的下降趋势,这是因为当需要调度的实例数在一定范围内增多时,并发处理能力令调度执行时间缩短。由于V-TGRU预测的准确率更高,使无用的调度大大减少,降低了调度过程中的资源浪费,同时由于更及时地调度了所在虚拟计算节点资源相对紧张的实例,提高了实例的稳定性和运行性能,保障了云平台资源的利用率和可靠性。
4 结 语
经实验测试,证明本文算法能更精确预测未来时效内实例占用资源的状况、运行状态以及资源池被占用情况,通过将更准确的预测结果和实时采集到的状态数据相结合进行综合分析调度,能更有效地完成实例对资源的预判选择,减少调度时间,避免实例的反复调度,节省因云资源的强制占用和反复调度消耗的资源及带宽,保证实例更稳定运行,提升用户满意度。下一步工作重点将积累并整合大量运维数据,研究更加高效的调度策略,进一步降低资源浪费,提升调度性能。