摘要
系统和网络中的资源管理问题通常表现为困难的在线决策制定任务,其中适当的解决方案取决于理解工作负载和环境。 受到最近在AI问题深层强化学习方面的进展的启发,我们考虑构建能够直接从经验中学习管理资源的系统。 我们提出了DeepRM,一个将多个资源需求打包的任务转化为学习问题的例子解决方案。 我们的初步结果显示,DeepRM的性能与最先进的启发式相当,适应不同的环境,快速收敛,并且学会了事后明智的策略。
挑战
现实情况下资源管理问题具有挑战性的一些原因:
- 基础系统很复杂,而且往往不可能精确建模。 例如,在集群调度中,任务的运行时间随着数据本地化,服务器特性,与其他任务的交互以及对CPU缓存,网络带宽等共享资源的干扰而变化。
- 实际的实例必须通过嘈杂的输入进行在线决策,并且在不同的条件下运行良好。 例如,视频流客户端必须根据可用带宽的噪声预测选择未来视频块的比特率,并且对于不同的编解码器,屏幕大小和可用带宽(例如DSL与T1)运行良好。
- 一些有趣的性能指标,例如尾部性能,在原理上难以优化。
设计
模型:

我们考虑具有d种资源类型的集群(例如,CPU,内存,I / O)。工作以离散时间步伐以在线方式到达集群。调度程序选择一个或多个等待作业在每个时间步调度。类似于以前的工作,我们假设每个工作的资源需求在到达时是已知的;更具体地说,每个工作j的源文件是由向量rj =(rj,1,…,rj, d)资源需求,以及Tj - 工作的持续时间。为了简单起见,我们假设没有抢占和固定的分配配置文件(即不可延展性),这意味着必须从作业开始执行到完成之间连续分配rj。此外,我们将集群视为单个资源集合,忽略机器碎片影响。虽然这些方面对于实际的工作调度器来说很重要,但这个更简单的模型捕捉到了多资源调度的基本要素,并提供了一个非平凡的设置来研究RL方法在这个领域的有效性。我们在§5中讨论如何使模型更加现实。
目标:我们使用平均工作减速作为主要系统目标。 形式上,对于每个工作j,减速由Sj = Cj / Tj给出,其中Cj是工作的完成时间(即到达和完成执行之间的时间),Tj是工作的(理想的)持续时间; 注意Sj 1.通过工作持续时间来规范完成时间可以防止将解决方案偏向大工作,这可能出现在平均完成时间等目标上。
RL形式化
状态空间:我们将系统的状态(当前分配的群集资源和等待安排的作业的资源配置)表示为不同的映像(参见图2)。群集图像(每个资源一个;图中最左侧的两个图像)显示每个资源分配给已经计划进行服务的作业,从当前时间步开始,向前看未来的T时间步。这些图像中的不同颜色代表不同的工作;例如,图2中的红色作业计划使用两个CPU单元,一个单元的内存用于接下来的三个时间步长。作业槽图像表示等待作业的资源需求。例如,在图2中,插槽1中的作业的持续时间为两个时间步,其中需要两个CPU单元和一个内存单元。
理想情况下,我们可以在等待服务的工作岗位上拥有尽可能多的工作岗位图像。然而,希望有一个固定的状态表示,以便它可以作为神经网络的输入。因此,我们只保留第一个M工作到达的图像(尚未排定)。关于第一个M之外的任何工作的信息总结在州的积压部分中,这个部分只是对这些工作的数量进行计数。直觉上来说,把注意力限制在早先到来的工作上是足够的,因为可能的政策可能更喜欢等待更长时间的工作。这种方法还具有限制动作空间的额外优势(见下文),这使得学习过程更有效率。
动作空间:在每个时间点,调度程序可能想要承认任务的任何子集。但是这将需要2M大的行动空间,这可能使学习非常具有挑战性。我们使用一个技巧来保持动作空间的小一点:我们允许代理在每个时间步执行多个动作。动作空间由{;,1,…,M}给出,其中a = i表示“在第i个时隙安排作业”。和a =空集 is a “void” 动作,表示代理不希望在当前时间步中安排更多的作业。在每个时间步骤,时间被冻结,直到调度器选择了void action或者一个无效的动作(例如,试图调度一个不“适合”的作业,如图2中的插槽3的作业)。在每一个有效的决策中,一个工作被安排在集群的第一个可能的时间步中(即工作的资源需求可以被完全满足直到完成的第一个时间步)。代理然后观察状态转换:计划作业被移动到群集映像中的适当位置。一旦代理人选择了a =;或者一个无效的行为,实际上时间就会进行:集群图像向上移动一步,任何新到的作业都会显示给代理。通过将代理人的决定等同于实时解耦,代理人可以以相同的时间步长安排多个工作,同时保持动作空间与M成线性关系。
奖励:我们制作奖励信号,引导代理商为我们的目标找到良好的解决方案:最小化平均减速。 具体而言,我们在每个时间步骤设置奖励为,其中J是当前在系统中的任务集合(预定或等待服务).3代理人在时间步骤中没有得到任何中间决策的奖励(见上文)。 观察设定折扣因子= 1,随着时间的累积奖励与(负)工作减速的总和相符合,因此使累积奖励最大化模仿最小化平均减速
训练算法
我们将该策略表示为一个神经网络(称为策略网络),其将上述图像的集合作为输入,并输出对所有可能动作的概率分布。我们在一个情节化的环境中培训政策网络。在每个情节中,固定数量的工作到达,并根据该政策计划,如§3.2所述。当所有的工作完成时,情节终止。为了培养广义的政策,我们考虑了在培训期间的多个工作到达序列的例子,以下称为工作集。在每个训练迭代中,我们模拟每个工作集的N个集以探索使用当前策略的可能动作的概率空间,并使用结果数据来改进所有工作集的策略。具体而言,我们记录每个事件的所有时间步的状态,行动和奖励信息,并使用这些值来计算在每个事件的每个时间步t的(折扣)累积奖励vt。然后,我们使用§2中描述的REINFORCE算法的变体来训练神经网络。
回想一下,REINFORCE使用公式(2)来估计政策梯度。 这个方程的缺点是梯度估计值可能有很高的方差。 为了减少方差,通常从收益中减去一个基线值,vt。 基线可以用不同的方式计算。 我们采用的简单方法是使用返回值的平均值vt,其中在所有情节4中采用相同的作业集在相同的时间步t采取平均值。 图3显示了训练算法的伪代码。
