论文部分内容阅读
近年来计算机系统的能耗开销日趋引人关注,能耗效率已经成为设计和实现现代计算机系统的一个重要考虑因素。降低计算机服务器的能耗开销对于维持数据中心和计算机集群的可扩展性和可持续性十分重要,同时能耗开销水平直接影响数据中心和计算机集群的运行成本开支。许多现代计算机系统中,处理器和内存系统是影响计算性能和系统能耗的关键因素。因此,研究如何利用处理器和内存系统的能耗管理技术来进一步降低计算机服务器自身的能耗开销仍然是计算机系统节能技术的研究重点。目前,多数处理器和内存系统的能耗管理技术通常针对特定场景的应用程序和硬件平台进行能耗优化,缺乏对不同程序执行特征的应用负载和不同硬件架构特性的系统平台的普遍支持。它们未能充分结合应用程序的实际在线行为特征,因而无法发挥最大的计算机系统节能潜力。具体来说,有效降低处理器和内存系统的能耗开销主要存在以下障碍。首先,基于动态随机存取存储器架构的现代内存系统中,内存系统被划分成了多个内存区块,并且支持多个不同的运行功耗状态。当内存区块转入内存低功耗状态时,内存区块的运行功耗将维持在较低水平。之前多数研究工作利用了内存系统的这一特性降低其能耗开销。但是,这些研究方法一般采用静态内存功耗状态降级策略,而静态策略失去了针对不同长度的内存区块空闲周期(应用程序内存访问特征)以及不同配置的内存低功耗状态(内存系统硬件架构)进行优化的机会。例如,对于内存访问密集型应用程序,内存区块的空闲周期长度往往比内存功耗状态转换的时间还要短。静态内存功耗降级策略可能导致错误的降级决定,进而损害内存系统的能耗效率和应用程序的执行性能。第二,动态内存频率调节和内存功耗状态降级是当前内存系统能耗管理策略的两个重要技术手段。动态内存频率调节技术,通过在内存带宽利用率较低时,降低内存通道和内存设备的工作频率以实现内存系统的能耗降低。内存功耗状态降级技术,通过在内存区块处于空闲周期时,将相应的内存区块降级至具备更低功耗开销水平的内存低功耗状态。内存功耗状态降级技术对于某些硬件架构、应用负载、优化目标或者性能延迟阈值更加有效,而动态内存频率调节技术则对另外一些情况更加有效。尽管这两类能耗管理技术的研究热度很高,但是较少研究工作关注这两类技术之间的协同作用,或者说这两类技术是否可以有效结合共同服务于内存系统的能耗管理仍是一个未知问题。第三,动态能耗管理机制通过处理器休眠状态降级技术,可以有效降低处理器的整体能耗开销。之前多数研究工作着眼于单线程执行模型的应用服务,并且这些应用服务往往具备较为稳定的计算负载。但是,新兴的多线程延迟敏感型应用服务已逐渐成为数据中心的一类主流应用服务。例如,智能个人助理服务、智能搜索服务和计算密集型的金融计算服务等。现有处理器的能耗管理机制如果忽视多线程延迟敏感型应用服务的执行模式特点,以及用户查询请求计算负载的动态多变性,这既可能违反多线程延迟敏感型应用服务的既定服务质量目标,又可能导致更高的处理器能耗开销。通过对基于程序行为和硬件架构动态自适应的处理器和内存系统能耗管理机制的研究,可以解决上述问题并进一步提升计算机系统的能耗效率。研究思路立足于能耗管理策略的动态自适应性,通过动态适配不同执行特征的应用程序、不同架构特性的硬件平台以及不同规格的优化目标,最大化计算机服务器的能耗效率。首先,提出了名为RAMZzz的内存能耗管理系统。该系统利用动态物理内存页面迁移技术和自适应内存功耗状态降级机制以实现内存区块级别的内存系统能耗调节。动态物理内存页面迁移将具有相似访问特征的物理内存页面迁移到同一个内存区块中。因此,不同的内存区块具备不同的访问热度:访问热度高的内存区块将一直较为繁忙,访问热度低的内存区块将具备较长的空闲周期。同时,RAMZzz系统利用了一种自适应内存功耗状态降级机制来调节每个内存区块的内存功耗状态转换过程。该机制同时考虑了底层物理硬件提供的、所有可能的内存低功耗状态,以及上层应用程序的内存访问特征(包括空间局部性和时间局部性)。RAMZzz系统可以根据用户需求设置不同的优化目标,根据实际情况平衡内存系统的能耗开销和应用程序的执行性能。针对三种不同硬件架构的内存系统和大量多进程应用负载的实验结果表明,RAMZzz系统相比其他重要的基于内存功耗状态降级技术的内存能耗管理系统,平均降低了23%至54%的归一化内存系统能耗–应用性能延迟平方之积。其次,通过对动态内存频率调节技术和内存功耗状态降级技术之间协同机制的理论分析和系统研究,提出了名为Hybrid的内存能耗管理系统。具体来说,通过建立基于排队论理论的内存系统能耗开销和访问性能的分析模型,揭示了动态内存频率调节技术和内存功耗状态降级技术之间相互影响的重要关系,明确了这两种不同的内存系统能耗管理技术协同工作的潜力和优势。Hybrid系统同时利用动态内存频率调节技术和内存功耗状态降级机制实现内存区块级别的内存系统能耗优化。为了降低优化复杂度和运行时开销,Hybrid系统进一步使用了一种简单而有效的启发式搜索算法,保证预先定义的应用程序性能延迟阈值的情况下,动态且自适应的快速搜索近似最优化的内存运行频率–内存功耗状态降级配置。实验结果表明,Hybrid系统比只考虑内存功耗状态降级技术的系统,平均降低了11%至70%的内存系统能耗开销;比只考虑动态内存频率调节技术的系统,平均降低了20%至67%的内存系统能耗开销;比单纯静态结合内存功耗状态降级技术和动态内存频率调节技术的系统,平均降低了22%至54%的内存系统能耗开销。最后,针对数据中心中新兴的多线程延迟敏感型应用服务场景,提出了基于机器学习理论的Electro低功耗任务调度系统,在最小化处理器能耗开销的同时,也保证了应用服务的服务质量目标。该系统通过动态地合并具备服务质量时间余量的延迟敏感型应用服务的用户查询负载,并利用深度处理器休眠状态降低处理器的能耗开销。通过相关机器学习算法和预先训练的代价模型,Electro系统可以预测不同延迟敏感型应用服务的每个用户查询负载的执行时间,并根据用户查询负载的预测执行时间,在系统运行时动态地合并多个用户查询负载,实现用户查询负载的并发合并执行。通过并发合并执行多个用户查询负载,保证延迟敏感型应用服务的服务质量的前提下,尽可能最大化处理器的空闲周期长度。处理器的空闲周期长度越长,处理器就能够转入更低功耗开销水平的处理器休眠状态,从而实现处理器能耗开销的降低。实验结果表明,相比操作系统中默认的任务调度机制,Electro系统平均降低了82%的处理器能耗开销。相比其他重要的低功耗任务调度系统,Electro系统平均降低了14%的处理器能耗开销。同时,Electro系统实现了在多线程延迟敏感型应用服务中95%的尾延迟目标。