论文部分内容阅读
为了给用户提供相应的服务,数据中心的服务器每天都运行处理着大量的任务。近年来,随着数据中心规模的快速增大,数据中心的高能耗问题已经变得非常严重。一个严峻的事实是全世界百分之一点三的电能用于维持数据中心的运行。此形势下在数据中心中实现高能效比的任务调度变得刻不容缓。动态调频调压(Dynamic Voltage Frequency Scaling,DVFS)技术是一种能够允许处理器动态调节主频,使得CPU处于合适的主频设置从而达到节省功耗的技术。目前,基本上所有的硬件厂商生产的处理器均支持DVFS技术。为了消除不同硬件厂商的差异性,一般来说用户都是通过软件模块如Linux内核模块中的cpufreq来调用DVFS,其调用方法统一且简单。然而,在数据中心这一规模的任务调度问题中,对于一个总的给定的任务负载量,低的主频设置使得每个处理器的计算能力下降,这会使得需要更多的服务器来处理这些任务。这种设定下对需要使用的机器的个数和每台机器的主频设置做好一个折中,这是非常有挑战性的工作。本文对基于DVFS技术的任务调度问题的进行了定义,并提出了一些对服务器个数和主频设置做折中的解决方案。更进一步的是,本文通过分析在一个真实的集群中收集的大量真实的实验数据,提出了新的基于DVFS技术的性能模型和功耗模型,并基于此重新定义了以最小化功耗为目标的基于DVFS技术的动态任务调度问题,通过规约法证明其难度是NP难的,且提出了相应的算法来解决问题。本文的工作按照如下的步骤展开。首先本文设计了一个模拟的实验场景,场景模拟出几百台服务器的规模来进行任务调度,这其中服务器的功耗数据也是来源于真实的数据。通过多次实验得出一个结论,使用最少数量的服务器往往不能得到最少的功耗,这与一般的观点使用最少数量的服务器最节能并不一致。其次,通过对前人相关工作的分析总结,本文发现,传统的基于DVFS技术的功耗模型并不精确。在大量真实的数据的支持下我们提出了一个新的基于DVFS技术的功耗模型,该模型将处理器的主频和利用率均考虑在内,实验结果表明这是一个更为精确的功耗模型。在新模型的基础上,本文重新定义了任务调度的问题定义并提出相应的解决思路。在解决方案的部分本文提出了一个名为功耗感知的阈值单位(Power-aware Threshold Unit,PTU)算法对数据中心中的任务做动态的在线调度。PTU算法的核心思想来源于阈值控制思想和数据中心以机架为单位来控制管理服务器的事实这两个方面。PTU算法在一个多服务器个数的单位(若干台服务器,如一个机架)中对于每台服务器尽可能的限定了统一的最大的主频上限,即这个单位中所有的服务器其主频均不能超过某一个值,如果新的任务无法被满足时,统一提高该单位的这个阈值。本文在一个由多核服务器组成的集群中完成了大量真实的实验。就我们所有的知识而言,本文是第一个提出这种新的基于DVFS技术的功耗模型。真实场景中的实验结果验证了新的基于DVFS技术的功耗模型的准确度。值得一提的是,在真实场景中实现的PTU算法可以得到与传统算法中最节能的PBF(Power-aware Best Fit)算法相似的功耗节省,并具有可根据数据中心实际的机架为单位的特点实际部署的潜力,获得更好的节能效果。