论文部分内容阅读
大规模数据中心应用对提高性能和降低功耗不断提出更高的要求,随着处理数据规模增大,如何提供大容量低开销的内存成为了迫切需要解决的问题。然而现有的存储技术(包括磁盘和基于闪存的固态硬盘)都受到其性能的限制,与此同时普遍应用的DRAM内存也不能够持续满足高速增长的容量与开销要求。目前正在出现的可比特寻址,非易失内存技术(如相变内存,磁自旋转内存,电阻内存等)在提供与DRAM同数量级性能的同时,也成为了未来内存系统的选项。这种能够通过load和store指令访问的提供持久化的内存,填补了传统存储和内存之间的空缺,并同时担任快速存储和慢速内存的角色。然而持久化内存同时对现有系统设计提出了新的挑战:(i)持久化内存作为潜在DRAM内存替代者,需要对系统软件重构的同时也依赖于不断出现的硬件创新,当前结合硬软件创新的研究平台通常采用模拟方法,运行时间长,调试难度大,(ii)持久化内存具有与传统内存不同的非对称读写延迟特性,不同的带宽,在持久化内存和传统内存中进行调度需要对持久化内存对应用性能影响进行综合分析,(iii)随着服务器聚合带来的资源复用优势,持久化内存必然将结合到虚拟化平台中,现有的云计算平台软件并没有提供针对非易失内存管理和优化的方案,(iv)内存为中心的集群架构是未来大规模计算机系统的发展趋势,如何将非易失内存用在内存中心架构中,是急需探索的重要课题。本文面向未来构建支持非易失内存的系统软件需求,在自主设计的非易失内存系统软件实验平台基础上,通过充分的性能分析,结合未来计算机系统架构发展方向,提出了切实可行的解决方案。1)应用内存性能敏感度研究。不同内存材质具有不同的读写特性,不同的行缓冲结构以及不同的数据保持方式,而这种异构特性如何影响应用的性能并没有很好的评估,在本章中,我们通过改变内存的频率来了解内存的异构性对服务,以及应用性能的影响。我们提出一个量化的衡量标准,频率敏感度来衡量不同应用受到内存影响的程度。我们的实验对内存异构配置以及未来内存频率调整提供了丰富的建议。2)在虚拟化平台下的混合内存重映射机制持久化内存管理是非易失内存向现有系统架构结合需要解决的主要问题。首先要考虑持久化内存管理的主要设计目标。从系统软件角度来说,非易失内存的特性是它提供了一个load store接口来访问系统中所有的持久化数据,这就意味着应用可以分配持久化的内存,正如他们能够分配易失内存一样。然而如何充分利用非易失内存和传统非易失内存的优缺点,是核心问题。持久化内存管理需要管理易失内存和非易失内存之间的数据放置,保证数据的合理放置,持久化支持,以及数据安全规则。另外,为了保证最高性能和功耗开销,需要系统软件向硬件提出提示来进行更优化的数据放置决策。现有云虚拟化平台是基于对内存的同质假设的,没有考虑到结合非易失内存的混合内存配置。在本章中,我们提出一种透明的混合内存架构作为虚拟化的工作内存。我们详细描述为什么现有虚拟机内存管理不适合非易失内存。根据我们的观察,我们设计并且实现了基于热度的管理层,并结合在现有KVM虚拟机管理器中。通过跟踪不同的流行的云客户操作系统的热点分布,我们的方法基于访问模式,透明地吧虚拟机内存映射到非易失内存或者DRAM,从而在保持近似全DRAM的性能的同时节约能耗。3)构建基于非易失内存的层次化swap机制传统计算机体系结构面向计算,计算资源宝贵,通过cache内存和磁盘或网络存储方式构建多级架构服务计算。然而在当前的数据中心中,内存数据服务需求日益增长,横向扩展的数据服务具有众多独立请求,通过数据划分计算。与此同时,计算能力和数据提供能力的不均衡发展使得内存的充分利用成为了数据中心发展的首要目标。近年来从intel的RSA(Rack Scale Architecture)到UCB的firebox,以及HP的the machine,学术界和工业界都在探索下一代数据中心的内存为中心的架构。与此同时,随着大量DIMM封装的非易失内存出现,持久化存储也逐渐能够通过使用load和store指令访问。虚拟化的服务器聚合特性带来了资源的有效利用,是当前云计算存在的主要经济原因。现有大部分数据中心通过虚拟化方法提供云服务。非易失内存池,作为内存中心数据中心架构的核心部件,虽然已有工作已经内存为中心的架构做出了初步的探索,然而如何将非易失内存结合到内存中心架构的问题需要被回答。针对这个问题,本章提出了一种在现有商用的虚拟化软件架构中使用持久化内存池的实用解决方案SwapX,通过使用持久化内存池构建层次swap,同时为持久化内存池鲁棒性提供了容错方案。然后本章讲述该原型系统的实现细节,实验证明,我们的方案相比于传统计算中心架构的本地交换分区方案,持久化内存池swap能够提升性能的同时提高能耗。4)基于性能计数器构建面向非易失系统软件的轻量级仿真实验平台。目前,研究人员通常依赖模拟器验证创新,不幸的是,模拟工作比实际执行消耗高于几个数量级的时间,并且大部分模拟平台难于调试。在本章中,我们提出使用仿真方法来减少模拟开销,我们提出一种可扩展的轻量级的模拟框架,LEEF。与之前的非易失内存仿真实现不同,之前的仿真工作或者依赖于特殊的硬件或者使用非常简单的性能模型。LEEF基于详细的性能模型,通过大部分处理器中都存在的性能技术事件,构建性能监控。LEEF同时提供一个在真实系统中内存轨迹生成的接口,从而方便输入到基于轨迹的模拟器中。通过使用真实的轨迹进行模拟的结果可以进一步结合到未来的LEEF仿真工作中。实验结果显示LEEF相比之前工作具有更好的精确性。同时我们针对近期非易失内存的微体系结构创新进行了两个样例实验。据我们所指,我们的工作是第一个将模拟结果结合到仿真工作中的。