论文部分内容阅读
随着YARN和Mesos等资源管理框架的流行与发展,数据分析集群能够运行各种各样的大数据应用。然而,分配给每个队列的公平度权重有可能不能够保证它的内部作业在截止时间之前调度完成,尤其是系统负载较高的情况下。除此之外,用单个截止时间指标来指示作业的重要性与调度顺序太过于简单与不精确。所以,本文使用了时间-效用函数的概念来指示某个作业在其调度完成的不同时刻所能够对系统提供的效用值的变化曲线。作业在接近或者超过它的截止时间的时候其效用值会明显下降,并且系统的调度优化目标是最大化全部作业的累加效用值。假设系统当中的作业已经被分类在相应的队列当中并且给定了时间-效用函数的曲线,当某个资源空闲的时候,调度器首先决定当前应当接收该资源的队列,然后在队列中选择某个任务进行调度。这个问题是NP-hard难度的问题,因为该问题的一个特殊情况,即只调度阶梯模式下的时间-效用函数已经被证明是NP-hard难度的。所以,一个复杂度为O(n3)的名为动态权重调节的启发式算法基于如下两个原则被设计出来:1)不同的作业队列之间根据当前的系统负载情况动态地调节权重,2)单个队列内部的作业按照一个分类的贪心算法进行排序并调度队列最前面的任务到该空闲资源上去。我们发现动态权重调节算法能够比原始的FIFO公平调度算法提升1.5倍到2倍的效率,并且能够比性能优良的DASA算法在违反截止时间的作业比例方面提升大约10%的性能。此外,动态权重调节算法能够方便地被当前的公平调度器以插件的方式实现。除此之外,本文进一步考虑了基于时间-效用函数的多资源调度问题。截止时间的目标经常是由于波动的系统负载率才造成了违反,而提高多资源系统的吞吐量可以缓解系统负载率。之前的基于截止时间或者公平性的调度算法都没有考虑通过最大化系统吞吐量来进行优化的相关研究工作,所以本文中提出了一个基于离线预约-在线调度机制的AUS启发式算法。该算法结合了资源放置,最大化系统效用,公平性等三个目标进行统筹调度。首先,流数据处理作业在系统当中预约相应的资源。其次,一个在线的过滤器根据截止时间系数与公平性系数的限制选择当前可以被调度的作业集合,最后对作业集合当中的作业使用最大资源向量点乘法来确定当前应该调度的任务。该算法结合三种不同的目标,解决了多资源条件下的实时性与公平性的性能优化,并且调度器中的公平度,截止时间等限制约束可以根据用户的需要进行灵活的调整。对于AUS算法的实验评估发现,该算法不仅能够比YARN平台中原生的Capacity Scheduler调度器在负载高时的CPU资源利用率提升大约15%左右,并且能够协同分配CPU以及网络等资源,为其他的作业预留相对合理的资源空间。此外,设定交互式作业的截止时间为2s,那么通过对交互式作业完成时间的CDF图的观测揭示出AUS算法能够在截止时间这一目标上比Capacity Scheduler优化大约30%。