1.一种基于虚拟化容器技术的多工作流任务分配方法,其特征在于,包括准备阶段:定义状态空间:用五元组S=(WR,RA,AW,IM,PJ)表示状态空间,其中WR表示待调度任务的工作量,RA表示资源可用时间,AW表示等待队列中的总工作量,IM表示空闲容器资源数,PJ表示队列中各用户提交任务的比例;
定义动作空间:用三元组J=(TJ,WS,ET)表示动作空间,其中TJ表示任务类型,WS表示用户标识符,ET表示任务执行时间;
定义回报函数:
其中 为控制系数, 为工作流任务vi的响应率, 为vi的公平性指标,任务vi的响应率 为:
其中,execution timevi为任务的执行时间,waittingtimevi为任务的等待时间,任务vi的公平性指标 定义为:
其中 表示用户k提交的任务vi所需的资源, 指用户k提交的任务vi的响应速率,指取用户k提交的所有作业中的最大的 值,指取用户K提交的所有作业中最大的W值;
执行阶段:
第一步:初始化ρ和Q(s,a),其中ρ表示平均回报,Q(s,a)为二维表格,行s为系统状态,列a为动作空间;
第二步:设置更新步长,执行迭代;
第三步:将变量i设置为0,将s设置为当前状态;
第四步:从动作空间a中选择动作;
第五步:执行选择的动作,得到当前状态的立即回报值r和下一个系统状态s’;
第六步:按式Q(s,a)←Q(s,a)+α*[r-ρ+maxa'Q(s',a')-Q(s,a)]更新Q(s,a),其中,a’代表系统状态s’下的动作空间,α∈(0,1)代表学习速率;
第七步:判断是否满足Q(s,a)=maxaQ(s,a),若是则更新平均回报ρ然后转第八步,若否则直接转第八步;
第八步:令i=i+1;
第九步:若i小于更新步长,令s=s’,转至第二步,若i不小于更新步长,则转至第十步;
第十步:将Q(s,a)表格中的数据作为输入,使用高斯过程进行回归操作,得到回归结果;
第十一步:使用第十步得到的回归结果修改Q(s,a)表格;
第十二步:将第七步得到的平均回报ρ作为输入,使用高斯过程进行回归操作,得到回归结果;
第十三步:使用第十二步得到的回归结果修改平均回报ρ;
第十四步:转至第二步。
2.根据权利要求1所述的一种基于虚拟化容器技术的多工作流任务分配方法,其特征在于,包括第四步中使用以下策略从动作空间中选择动作:按公式rank(vexit)=w(vexit)设置任务初始优先级,rank(vexit)表示任务初始优先级,w(vexit)表示出口任务优先级;
对初始优先级进行动态调整,选择当前优先级最高的动作,调整公式如下:
其中,rank(vi)′任务为vi调整后的优先级, 表示任务vi在当前簇内所有可用虚拟化容器资源上的平均执行代价, 表示任务vi和vj之间的平均通信代价,rank(vj)表示任务vj调整前的优先级, 为紧急因子,表示当前任务vi在执行中随外部环境因素改变而导致违反服务等级协议的紧迫程度。
3.根据权利要求1所述的一种基于虚拟化容器技术的多工作流任务分配方法,其特征在于,所述第七步中,按照公式ρ←ρ+β*[r-ρ+maxa'Q(s',a')-maxaQ(s,a)]更新平均回报ρ,其中β∈[0,1]为累积回报折扣因子。