没有合适的资源?快使用搜索试试~ 我知道了~
灵活高效的云内存管理系统FlexHM
ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月×FlexHM:一个具有灵活高效性能优化的彭博,上海交通大学,中国董耀祖,英特尔亚太研发有限公司, 中国姚建国,上海交通大学,中国吴锋光,英特尔亚太研发有限公司,中国关海兵,上海交通大学,中国随着云计算的快速发展,大量的云服务、容器和虚拟机给现代数据中心带来了对高性能内存资源的巨大需求异构存储器,特别是新发布的Optane存储器,为云中的DRAM提供了合适的替代品,具有更大的容量,更低的购买成本和更好的性能。然而,当使用混合DRAM和Optane存储器时,云服务遭受严重的实施不便和性能下降FlexHM是一个实用的跨父异构内存资源管理系统,可以灵活地优化所有虚拟机、容器和本机应用程序的内存访问性能我们提出了一个开源原型的FlexHM在Linux中的几个主要贡献。首先,FlexHM提出了一种新颖的两级NUMA设计,将DRAM和Optane存储器作为透明的主存资源进行管理。其次,FlexHM提供灵活高效的内存管理,通过定制化的管理策略,帮助差异化云服务优化内存访问性能或节省内存资源的购买成本最后,评估表明,在FlexHM上使用50% Optane慢速内存的云工作负载可以实现高达93%的性能,而使用全DRAM时,FlexHM在工作负载使用相同比例的DRAM和Optane内存时,比以前的异构内存系统解决方案提高了5.8。CCS概念:·计算机系统组织→体系结构;二级存储组织;·软软件及其工程→虚拟机;内存管理;13附加关键词和短语:NVM、异构存储器管理、两级NUMA、页热、保守页迁移ACM参考格式:彭波,董耀祖,姚建国,吴凤光,关海冰。2022年FlexHM:一个具有灵活高效性能优化的异构内存实用系统ACM Trans. Arch. 代码优化20,1,第13条(2022年12月),26页。https://doi.org/10.1145/3565885这项工作得到了国家自然科学基金项目(No.62032008),STCSM项目(No.20510712400)、教育部-中国移动研究基金会(编号:MCM20180703)、阿里巴巴创新研究(AIR)计划和上海交通大学-Enflame联合实验室。作者Peng,J.Yao和H.Guan,Shanghai Jiaotong University,Shanghai,China; email:{pengbo_michael,jianguo.yao,hbguan}@sjtu.edu.cn; Y. Dong 和 F. 英 特 尔 亚 太 研 发 有 限 公 司 吴 中国上 海 ; 电 子 邮 件 : eddie. intel.com ,wfg@mail.ustc.edu.cn。允许制作本作品的全部或部分数字或硬拷贝供个人或课堂使用,无需付费,前提是复制品不以营利或商业利益为目的制作或分发,并且复制品在第一页上带有此通知和完整的引用版权的组成部分,这项工作所拥有的其他人比ACM必须尊重。允许用信用进行提取 复制,或重新发布,张贴在服务器上或重新分发到列表,需要事先特定的许可和/或费用。从permissions@acm.org请求权限。© 2022计算机协会1544-3566/2022/12-ART13 $15.00https://doi.org/10.1145/3565885十三比二B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月∼1介绍内存是云基础设施中最关键的性能资源之一,与众多内存密集型本地服务、容器和虚拟机(VM)的服务质量(QoS)相关。云服务提供商(CSP)通常会超额订购内存资源,并增加每个云服务器上内存密集型云工作负载的密度以获得更高的利润。 假设云服务的存储器资源需求超过一个云服务器的DRAM容量。 在这种情况下,云服务提供商(CSP)只能转向分布式内存系统,而与一个大规模本地内存系统相比,分布式系统严重降低了内存资源的可扩展性和利用率[35]。 随着英特尔Optane DC持久性存储器(本文简称为Optane存储器)的商业发布[19],慢速主存储器(SMM)可以提供可靠的主存储器替代方案,以与DRAM结合形成云服务器的异构主存储器(HMM)系统。Optane存储器是非易失性存储器的一种实现方式,其包含字节可寻址特征,并以其大容量和低购买成本的优点丰富了存储器层次结构。现在,最大的Optane是每刀片512 GB,而最大的商用DRAM是128 GB,Optane大约是每GB DRAM的1/3 1/2价格[6,16]。然而,Optane在用作主存储器时显示出与DRAM不可忽略的性能差距;例如,Optane的峰值读取带宽是DRAM的1/3,峰值写入带宽是DRAM的1/6 [20]。考虑到异构存储器的性能和价格,异构存储器最重要的问题是摘要异构主存(HMM)系统设计是指系统如何以较低的内存资源成本优化HMM资源利用率,达到较好的服务性能。具体来说,云上的裸机云原生应用程序、容器和虚拟机对HMM系统提出了几个基本要求例如,(1)他们更喜欢使用透明的异构内存来修改他们的源代码,并使用一些库或工具(如Optane的PMDK [41])来调整他们的编程模型,因为PMDK在Optane上进行内存性能优化会带来繁重的编程和测试工作,并且它限制了框架移植到更多未来慢速内存设备而不是Optane的便利性和灵活性(2)它们的各种存储器使用目的和不同的存储器访问模式,以及它们关于存储器容量和整体吞吐量和延迟性能的多个QoS或服务水平协议(SLA)级别,显著增加了管理难度,并最终影响它们在使用HMM时的整体存储器性能。(3)在长期运行中,它们的内存使用数据分布往往不均衡,因此它们的资源支付意愿存在差异例如,企业服务或VM的大多数内存访问出现在日常时间的少数时间[12],而个人客户机在其生命周期的大部分时间内都是空闲的。内存管理对于云存储性能保证和优化具有重要意义在操作系统设计中,特别是对于异构存储器云系统。虚拟存储管理[7]、内存虚拟化[58]和非统一内存访问(NUMA)[28]是基本和通用的OS内存管理技术。许多先前的工作通过使用DRAM仿真的非易失性存储器[1,4,10,25,30,33,38,55]或存储器控制器模拟器[5,17,32,40,42,46,52]来研究现代系统的有效HMM管理解决方案。然而,随着Optane内存的发布,最近的研究[34,49,57]已经证明,以前的基于仿真的解决方案不能在实际Optane硬件上以及在那些仿真的内存设备上有效地执行。因此,构建一个实用的系统来支持和管理真正的DRAM和SMM设备(例如Optane)并优化性能和FlexHM十三比三ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月×本机内存工作负载、容器和客户机的利用率吸引了学术领域和OS开发人员社区的关注。在本文中,我们提出了FlexHM,这是一个实用的异构主存系统,具有灵活高效的HMM管理机制,因此云应用程序,容器和虚拟机可以透明地使用HMM,并采用自定义的管理策略来优化性能和价格。FlexHM在传统主流OS的单层NUMA基础上,构建了两层NUMA(距离和异构对等体),提供透明的HMM资源和内存虚拟化支持。然后,FlexHM涉及基于操作系统内核空间中的内存性能监测与操作系统用户空间中的利用率分析和优化之间的周期性交互的HMM管理具体而言,我们研究了FlexHM的积极和保守管理策略,证明了FlexHM能够灵活有效地处理不同云负载的差异化HMM使用管理和性能优化需求 最后,我们展示了FlexHM的评估结果与全面的内存密集型工作负载的微基准和应用程序基准(内存中的数据库和图形计算基准)。例如,(1)使用DRAM和Optane慢速主存储器(SMM)的固定比率的微基准可以实现高达5.8倍于恒温器[1];(2)使用HMM(DRAM:Optane = 1:1)的微基准测试达到使用所有DRAM的基准性能高达93%;(3)PageRank应用程序基准可以使用较低百分比的DRAM资源(例如,DRAM:Optane = 1:3),以实现5.7的每千次改进,并节省50%的昂贵DRAM资源,超过最先进的解决方案(使用DRAM:Optane = 1:1)。总之,本文做出了以下贡献:我们提出了FlexHM,一个实用的和开源的系统,在云中灵活和高效的内存性能和利用率优化,所有的客人,容器和本地应用程序可以透明和有效地使用异构主存。我们在Linux中实现了FlexHM的原型,以管理透明的异构主存储器,包括DRAM和真正的NVM硬件Optane存储器,并为基本的HMM管理添加必要的内核模块,在https://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux.git上开源。我们在FlexHM上设计了灵活高效的HMM管理,可以灵活采用自定义的HMM管理策略 , 高 效 处 理 差 异 化 的 HMM 使 用 需 求 , 开 源 于 https://github.com/intel/memory-optimizer,供社区进一步开发更多的HMM管理策略。我们做了全面的评估,以证明FlexHM系统可以提供有效和灵活的HMM管理本机或客户机内存密集型的工作负载。讨论了FlexHM在采用主动和保守管理策略时的管理效率,以及&采用Optane两级内存模式等硬件缓存时FlexHM的优缺点。本文的其余部分组织如下:我们在第2节介绍FlexHM的背景和动机。第三节介绍了FlexHM系统的总体设计,第四节介绍了HMM的两层NUMA,第五节介绍了灵活高效的HMM管理和性能优化。我们将在第6节介绍Linux原型的实现细节。我们在第7节中展示了评估结果。第8节讨论了FlexHM我们在第9节结束这篇文章。·····十三比四B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月××2背景和动机2.1异构主存英特尔Optane DC持久存储器(也称为Optane NVDIMM,在本文中简称为Optane存储器)[19]是一种高性能商用NVM设备。Optane内存使用3D XPoint技术,内存颗粒密度更大,可以提供比DRAM更大容量和更经济实惠的主内存资源。 以前的工作[20,56]已经证明,Optane显示出类似的空闲延迟,但与DRAM相比,大约有5个 随机读取加载延迟和2个随机顺序加载延迟。我们还使用英特尔内存延迟检查器[51]进行了实验,并在图1中演示了测得的顺序和随机读写性能结果。 从结果中我们可以发现,Optane存储器的随机读写性能比DRAM的顺序读写性能更有缺陷,甚至Optane是最先进的慢速主存储器设备。由此可见,用非易失性存储器取代操作系统中的易失性存储器,重建现有的计算架构仍然是不现实的,也是不可接受的。Optane内存可以显著增加一台云服务器的本地内存容量,提高服务、容器和虚拟机的密度我们可以预见,Optane和一些未来的SMM设备可以与DRAM共存,作为云系统的异构主存储器。目前,Optane主要有两种使用模式,即APP直接(AD)模式和内存(MM)模式。在AD模式下,操作系统最初将Optane存储设备视为字节可寻址但持久的设备(不像主存储器,但类似于闪存和磁盘)。在MM模式下,Optane内存使用来自相同内存通道的DRAM来构建包容性硬件缓存模型[21],操作系统可以直接使用Optane,就像易失性主内存一样。因此,MM模式是用于现代系统的初步异构主存硬件解决方案,其可以使用固定的高速缓存替换算法(诸如直接映射或LRU)从SMM加载和刷新DRAM高速缓存线/将DRAM高速缓存线刷新到然而,这种硬件解决方案有三个主要缺点。(1)随着SMM容量的增长,硬件缓存实现将更加复杂和不切实际[32,42]。(2)使用DRAM作为包容性硬件缓存会牺牲整个系统的总内存容量;例如,当双插槽服务器配备12个64 G DRAM刀片和12个512 GB Optane刀片时,将浪费超过10%的总内存容量。(3)硬件高速缓存只能使用刚性高速缓存替换策略(例如, 直接映射,伪LRU),这在解决不同的云工作负载场景方面不够灵活。2.2异构内存管理异构主存资源的内存管理长期以来一直是研究热点[1,13,14,23,24,30,31,38,43,44,50,53- 55 ],我们在表1中总结了一些重要的研究工作。具体来说,Thermostat [1]是一个典型的系统,它构建了一个应用程序透明的大页面感知机制,将具有在线页面热度分类的页面放置在QEMU的虚拟NUMAThermostat提供了一种通过页面热度管理SMM的方法,但该解决方案受VM限制,无法满足本地云进程和容器的要求。此外,这些相关工作的局限性在于,它们通常使用DRAM来仿真慢NVM或使用存储器模拟器来构建模拟的异构存储器环境,因此这些工作没有充分考虑真实NVM硬件的行为和性能以提供有效的优化。具体来说,我们做了一个初步的评估如何这些以前的工作表现在实际的HMM硬件。我们从Github [ 37 ]中选择一个开源的Thermostat实现,构建系统,并使用QEMU的虚拟NUMA运行一个32 VCPU的虚拟机,该虚拟机可以管理真正的DRAM和Optane内存作为其HMM资源。我们运行32线程FlexHM十三点五ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月≈表1.异构存储器系统设计与资源管理研究名著系统慢主存储器设计水平应用使用VM使用管理政策PoM [46]、BuMP[52]、莫内塔[5,32]硬件模拟器硬件控制器透明不设计固定恒温器[1],MemBrain [38,55],[10,30]DRAM仿真OS透明不设计固定HeteroOS [23],[第14话]DRAM仿真管理程序不设计是的固定[9,50]第一次世界大战[第四十三章]DRAM仿真应用改性不设计固定FlexHM(我们的工作)OptaneOS透明是的柔性图1. MLC在一个NUMA节点(六个DRAM和六个Optane刀片)中加载DRAM和Optane的延迟和吞吐量结果图2.恒温器、MM模式和全DRAM基线上的Sysbench微型基准测试结果。Sysbench随机读取和写入微基准在这个虚拟机中,我们比较了恒温器,MM模式(其中服务器的DRAM容量是其总Optane容量的1/4)和全DRAM基线之间的吞吐量性能我们在图2中演示了内存访问吞吐量性能结果。从实验数据中我们可以发现,当我们让一台客户机使用25%的DRAM和75%的Optane内存作为其内存资源时(使用与MM模式环境相同的容量资源),与使用所有DRAM相比,客户机只能分别提供18%的随机读取性能和3.1%的随机写入性能Thermostat的性能结果也比使用MM模式为该VM提供异构内存差得多。进一步分析了Thermostat在真正的异构主存硬件上不能像在DRAM模拟的慢存储器上那样有效工作的原因。根据参考文献[1]中的实现和评估环境,Thermostat的设计基于异构存储器性能的一个重要假设,即慢存储器具有1μ s的延迟,但不低于快DRAM存储器的吞吐量然而,即使Optane内存是最先进的慢内存硬件之一,并且它可以在延迟性能上比假设更好地工作,但Optane和DRAM之间存在非常显著的吞吐量性能差距,特别是随机读/写性能。 由于Thermostat的性能优化是基于在其系统内核中将热数据迁移到快内存中,冷数据迁移到慢内存中,这将在DRAM和Optane内存之间产生非常大的内存页移动需求,从而导致内核的内存开销很大。 当Thermostat使用非常激进的策略来进行异构内存页面的热收集和迁移时,Optane的吞吐量性能可能成为瓶颈,并且可能在DRAM和Optane之间产生更多的内存访问和迁移开销十三点六B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月内存比它获得的性能优化效果Thermostat可以对一些随机读写系统内存吞吐量较低的应用程序基准进行有效的优化,不会给系统内核带来严重的热收集和迁移开销但是当密集的工作负载占用Optane内存的峰值带宽时,它不能灵活地改变策略以在性能提高和开销之间达到更好的平衡因此,我们的目标是设计和实现FlexHM,以提供灵活和高效的HMM管理和性能优化的云计算。 我们推断,FlexHM必须具有以下功能,以处理来自云系统的本地服务、容器和虚拟机的异构存储资源的复杂和差异化需求:(1) 支持透明HMM使用和完全HMM虚拟化:我们的目标是为所有本地云工作负载、容器和客户机提供透明HMM资源的灵活容量,而无需对其源代码进行任何修改(2) 使用固定比例的HMM优化工作负载的性能我们的目标是为具有固定比例的HMM的工作负载提供运行时内存管理,以动态地将热数据从其SMM区域移动到DRAM区域,并将冷数据交换到SMM区域,以实现更优化的内存访问性能和资源利用率。(3) 优化HMM利用率,以达到更实惠的价格和可接受的性能下降:我们的目标是节省HMM工作负载的内存购买成本,并以轻微和可接受的性能牺牲,但满足其QoS。我们可以稍微降低DRAM百分比,增加SMM(Optane NVM)百分比,并动态地挑选冷数据并将其交换到SMM中。3FLEXHM概览我们设计了FlexHM,一个实用的系统来管理异构主存,具有有效和灵活的运行时内存管理机制,以提供透明和快速的DRAM和其他SMM(例如,Optane内存)和优化利用率。FlexHM体系结构的概述如图3所示,其中我们介绍了从硬件配置到系统内核以及用户和内核级协作的HMM管理的重要设计。FlexHM硬件配置:FlexHM是一个建立在真实异构存储环境上的实用系统,例如,使用DRAM作为快速主存储器,使用Optane存储器作为慢速主存储器。与Optane的内存模式不同(Optane使用所有DRAM作为其硬件缓存),FlexHM系统中使用的Optane资源在服务器BIOS中配置为APP Direct模式因此,FlexHM不浪费DRAM容量,并且FlexHM的内核可以将所有DRAM和Optane容量作为所有进程的可用内存这种结构-有助于提高云服务器所有昂贵内存资源的更多利润FlexHM内核:设计并实现了基于Linux的 FlexHM内核函数首先,FlexHM内核支持异构内存硬件(例如DRAM和Optane)的透明资源管理。由于Optane最初应该在配置为APP直接模式时用作更快的存储设备,因此我们更新了Linux内核中的原始内存管理功能,以将Optane作为缓慢但应用程序透明的内存资源进行管理。为了保持内核的简洁性,提高HMM管理和性能优化的效率,设计了一种用户级和内核级协同的HMM管理机制,提高了管理的灵活性和效率,FlexHM内核为用户级管理提供了基础支持。具体来说,我们引入了一个“kvm-ept-idle”模块,用于检查FlexHM内核中的裸金属本地服务和客户机的内存访问模式。该模块可以提供可靠的内存使用信息,但不会FlexHM十三点七ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月图3. FlexHM系统设计概述直接触发任何系统进程的任何内存管理操作 FlexHM可以继承当前Linux系统的所有基本内存管理模块,我们只在FlexHM内核中引入少量的内存页面管理策略来优化各个进程的异构内存分配性能。FlexHM用户级管理器:在FlexHM的用户空间中设计了一个HMM资源管理器Memory-optimizer管理器可以确定每个系统进程的快速和慢速内存利用率之间的任何比率,并提供性能优化和利用率管理。管理者可以针对不同的云应用、容器或客户机采用不同的自定义管理策略,以满足其对HMM资源的不同需求或优化HMM资源利用率。具体来说,它可以使用来自内核的内存引用信息,分析工作负载的内存模式,并触发异构内存之间的内存 如果工作负载希望在固定的HMM比率上优化性能,则管理器可以动态地将其热的内存数据选择到DRAM中,并将冷数据交换到SMM中。如果工作负载希望使用更多的SMM资源以节省成本,则它可以分析存储器访问模式并在不错过QoS的情况下4FLEXHM的透明异质记忆在FlexHM系统中,Optane内存在服务器BIOS中配置为APP Direct模式然而,当操作系统在Optane上构建文件系统时,具有APP Direct模式的Optane最初用作比NVMe SSD更快的存储设备,而不是主内存因此,我们必须为操作系统的内存管理功能添加必要的支持,以管理像Optane这样的DRAM和SMM作为透明的主内存。考虑到非均匀内存访问(NUMA)可以有效地管理来自每个服务器的不同硬件插槽的内存,我们在FlexHM中设计了一个两层NUMA来管理所有HMM资源作为应用透明的异构内存。两层NUMA的概念是传统NUMA在主流操作系统中的扩展传统的NUMA是一层NUMA,因为它只考虑CPU访问距离,与本地或远程访问延迟有关;也就是说,传统的NUMA只有一个特征可以告诉十三点八B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月×图4.来自两层NUMA的透明内存。硬件套接字的信息,并且它不能准确地描述考虑内存异构性的内存引用差异。因此,为了管理内存异构性,除了第一层NUMA距离特性之外,我们还引入了一个称为“NUMA对等体”的概念因此,如果仅存在OptaneNVDIMM,则OS可以将来自相同硬件插槽的存储器控制器的所有异构存储器设备分离成一个DRAM对等节点和一个SMM对等节点,或者如果在未来的服务器中安装有多于一个SMM硬件,则OS可以将所有异构存储器设备分离成若干不同的SMM对等节点。距离和对等特征一起构成了FlexHM中的两层NUMA,并且FlexHM系统可以具有插槽数*存储器硬件数的NUMA节点。例如,我们演示了两层NUMA如何管理图4中具有四(2 2)个NUMA节点的双插槽服务器中的DRAM和Optane; NUMA 0和1是来自硬件插槽0和1的DRAM资源,NUMA 2和3是来自硬件插槽0和1的Optane资源 如果将来有其他字节可寻址的慢速主存设备,那么两层NUMA设计也可以使用DRAM、Optane和其他SMM轻松管理更复杂的内存异构性由于我们的FlexHM管理所有的DRAM和Optane作为两层NUMA的不同NUMA对等节点内的透明内存资源,我们引入了两个新的概念:升级和降级的页面管理。具体地,NUMA对等节点可以在FlexHM两层NUMA中具有升级和降级目标例如,存储器页面可以从DRAM对等节点降级到SMM(Optane存储器)对等节点,并且最终被回收到交换区域中,并且提升反之亦然。如果我们有一个以上的SMM,那么降级可以从DRAM开始到更快的SMM节点,然后到更慢的SMM节点,依此类推,升级反之亦然。升级/降级是FlexHM内存页面管理的基础,它为内核或用户级进程提供了一个通用接口,以便在不同的NUMA对等节点之间移动内存页面。FlexHM中的两层NUMA可以管理异构主存的所有容量,并为所有系统进程提供透明的内存资源此外,FlexHM支持完整的HMM虚拟化,并且与硬件辅助虚拟化支持(例如,扩展页表(EPT))的使用没有冲突。因此,从CSP的角度来看,每一台运行FlexHM系统的服务器都可以增加云应用、容器和虚拟机使用异构主存的部署密度,CSP可以因为更好的内存资源可扩展性而增加利润。 从云用户的角度来看,FlexHM非常方便,他们可以使用更实惠的异构内存,而无需修改任何源代码。此外,FlexHM可以通过使用一定比例的慢速内存来取代快速DRAM,为他们的工作负载提供更FlexHM十三点九ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月5灵活高效的HMM管理FlexHM现在可以支持透明的HMM使用和基于两级NUMA设计的完全HMM虚拟化。然而,与使用所有快速存储器(例如,DRAM)相比,使用HMM的本机应用、容器和虚拟机如果直接使用HMM而没有有效的存储器管理,则会遭受严重的性能下降。因此,通过参考我们在第2.2节中推断的系统需求,FlexHM必须灵活地处理来自不同云服务租户的异构内存使用和优化目标HMM管理的一个简单的想法是扩展当前的内核级架构管理策略,以处理内存密集型云工作负载的HMM管理和优化需求然而,这种设计可能具有若干缺点。一方面,由于云系统上的本机应用、容器和虚拟机具有不同的存储器资源需求和差异存储器访问模式,因此操作系统内核很难设计全局策略来有效地管理和优化HMM差异工作负载另一方面,如果在内核中设计和采用多种HMM管理策略,则会使原有的内核存储管理功能变得复杂,牺牲代码维护的便利性,最终损害内核的稳定性。在设计FlexHM时,我们选择了用户级和内核级协同的设计来进行HMM的管理和优化具体来说,我们只在FlexHM内核中添加了几个基本的HMM管理策略,以确保从操作系统的角度来看正确的内存分配和管理功能(见5.1节)。内核HMM管理通常在FlexHM系统上初始化新应用程序、容器或VM时触发,因此这种管理对于每个工作负载本身都是粗粒度的,而不是运行时管理功能。此外,我们在FlexHM中设计了一个更细粒度和运行时的HMM管理机制,使用用户空间管理器和内核之间的交互来提供灵活和高效的HMM管理,可以采用自定义的管理策略(在第5.2节)。5.1内核中的内存管理我们在FlexHM内核中增加了三个基本的内存管理策略,以对应于两级NUMA设计,这样内核就可以明智地进行内存分配和管理:(1)如果新的应用程序或来宾VM崩溃,内核默认从DRAM对等节点分配其内存页面,而不是按照NUMA交错策略分配页面。(具体地,如果DRAM节点中没有存储器,则页面分配直接落在SMM节点上。(2) 在一个NUMA对等节点上运行的本机应用程序或VM显式地从具有相同对等节点的节点 如果这个对等节点中没有内存,那么内核将从具有相同NUMA距离的其他对等节点分配内存。(3)页表(PT)被强制分配并保持在DRAM对等节点中。 PT是性能关键的,因为当应用程序对存储器数据生成大量随机读/写操作时,频繁地获取和更新PT,并且在进行PT转换时,近一半的存储器访问是由TLB未命中引起的。此外,当内核在DRAM对等节点中发现没有空闲空间时,它可以自动触发页面降级,类似于kswapd将页面从内存交换到磁盘上的交换分区内核页面降级的频率和kswapd一样低,所以这不会给内核内存管理带来严重的开销。FlexHM还利用kswapd定期将SMM中最不常用的内存数据移动到交换区域(如果操作系统有任何交换区域的话)。这有助于确保FlexHM上的进程不会从交换区分配内存资源十三点十B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月∗即使占用了操作系统的所有DRAM和SMM资源,也会影响系统内存性能。这些内核管理策略对于系统中的所有进程都是简单、静态和通用的这有助于保持操作系统内核的稳定。5.2网页管理为了在FlexHM中更有效地管理HMM,除了内核管理之外,我们还需要一个更细粒度的管理机制通常,在具有存储器页面的OS中,每个存储器页面上的每个数据的引用与加载和刷新的每个CPU硬件高速缓存行的成本成比例,并且当云应用长期生成对其存储器页面的大量读/写操作时,高速缓存行被填充有交错策略。因此,我们预计,每个进程的内存读/写性能与其所有的页面引用。此外,由于字节可寻址异构主存储器设备在CPU高速缓存加载和刷新其上的数据时将以不同的页面引用成本表现,因此整体性能与快速DRAM和SMM(如Optane存储器)中的页面引用成本的总和相关联。因此,我们在FlexHM中设计了一个运行时页面管理机制,它可以灵活地决定快、慢内存的使用比例,并遵循自定义的积极或保守的HMM管理策略。在FlexHM中,我们设计了一个用户级的内存优化器来执行运行时为每个本机进程、容器和虚拟机提供细粒度的页面管理管理器在一个周期性的过程中执行页面管理,分为三个主要阶段:收集、分析和操作。首先,在收集阶段,用户级管理器通过检查页面引用热度来计算页面引用频率。然后在分析阶段,管理器进行页面热度分析,以预测运行时内存访问模式和优化目标的数据引用分布最后,在Action阶段,管理器根据资源利用率和定制的管理策略在HMM之间进行内存迁移,为不同的工作负载场景提供优化。FlexHM HMM页面管理的主要目标是,它可以根据尽可能正确地收集所有参考信息,将目标存储器工作负载的最频繁引用的SMM页面识别为所识别的热SMM页面,并且将那些最空闲引用的DRAM页面识别为所识别的冷DRAM页面 需要说明的是,所识别的热SMM页和所识别的冷DRAM页是测量值,并且可能与每个工作负载的真实热/冷数据有一些差异。因此,FlexHM用户级管理器被设计为在运行时内存管理和性能优化过程中灵活地采取不同的管理策略来提高热/冷页监视、分析和识别的准确性。我们使用图5来演示定期页面管理过程。用户级管理器在短时期内周期性地重复该过程,包括收集、分析和动作阶段。具体地,在每个时期e内,管理器首先以指定的时间间隔i进行热度收集,直到最大引用计数r,以监视和计算在一个时期e中所有页面被引用多少次。稍后,管理器分析在r i时间(在整个时期e内)中的页面的页面热度信息,并且投影目标工作负载和相同的热/冷页面的数据分布。最后,管理器选择相同的热SMM页(以及相同的冷DRAM页)的特定存储器大小,并进行页升级和降级以优化目标存储器使用,从而达到其自己的管理目标。最后,管理器休眠并等待到下一个epoch,以减少频繁的页面管理开销。我们将在以下三个段落中介绍更多细节FlexHM十三点十ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月图5. 用户级管理器如何定期工作。首先,我们介绍了收集阶段,这是必不可少的和基本的监测页面引用信息。在FlexHM内核中设计了一个kvm-ept-idle模块,将原有的管理功能升级具体来说,它增加了两个接口来检查和清除本地进程页面(包括本地应用程序和常规容器)或虚拟机(如QEMU)的匿名页面的PFN的Access位。这些接口可以从内核空间和用户空间调用因此,模块可以在调用接口时检查页面是否被引用之后,如果Access位为1,则内核模块将其清除为0每当重新检查此页访问位时,访问位的变化可以告诉目标进程的页是否在两次检查之间被引用。 在FlexHM设计中,用户级管理器调用kvm-ept-idle模块的接口r次,间隔为i。我们在用户级管理器中为每个目标使用散列映射来存储目标的内存页的HVA地址和对等节点信息,这也记录了这些内存页的读、写、执行)。因此,管理器可以根据不同目标进程的ProcMaps结构正确地检查它们的内存页面,并监视目标进程的页面引用信息。其次,FlexHM分析目标进程的测量页面引用信息,投影其页面引用数据分布。以前的工作已经证明了系统中的内存引用分布,特别是在云计算中,遵循Zipfian [15,47],Gaussian [36]或Pareto [2]。如果页面引用遵循特定的数据分布,则FlexHM基于该数据分布来提高随机存储器读取或写入的性能是友好的此外,FlexHM可以灵活地采用自定义的页面管理策略,用于具有不同内存引用分布的各种云工作负载。在FlexHM中,用户级管理器为每个目标维护一个数据结构,以存储所有目标工作负载内存页的引用计数。页面引用信息存储在用户级内存区域中,因此它不会对有限的内核内存资源造成大量内存使用 在收集阶段之后,管理器可以计算并排序不同虚拟存储器区域(VMA)中所有页的从r到0的页引用计数。然后,FlexHM可以分析包含最频繁引用的页面的虚拟内存区域,并预测工作负载遵循特定的数据分布。然后,管理器检查这些页面是否位于DRAM或SMM对等节点中,并分析应该移动的所识别的热SMM(和冷DRAM)页面的总大小。最后,在动作阶段,管理器可以将相同的热SMM页提升到DRAM中节点,并通过调用DRAM或SMM对等节点之间的move_pages()系统调用,将具有相同大小的相同冷DRAM页相应地降级到SMM节点 DRAM和SMM NUMA对等节点之间的页面迁移将占用DRAM和Optane存储器硬件的一些存储器带宽,因此管理器休眠并等待一段时间,直到下一个周期性管理时期,以避免高管理开销。十三点十B. Peng等人ACM Transactions on Architecture and Code Optimization,卷。号201、第十三条。出版日期:2022年12月∗5.3灵活的管理政策在FlexHM运行时页面管理中,用户级管理器使用ri时间的页面引用分布投影作为epoche中的热度分布的代表,并最终投影目标工作负载的数据引用分布。如果工作负载在其生命周期内具有相对稳定和规则的内存访问模式,则每个时期的投影将非常准确。而如果工作负载是由多个进程生成的,并且其内存模式在短时间内不稳定,则如果工作负载表现出非常不规则的内存访问模式,则管理器可以指示不同时期中的不同标识的热/冷页因此,使用每个epoch数据分布投影是不准确的,并且会导致一些不必要的热/冷页面移动,这将不会有效地优化性能并带来高管理开销。FlexHM提供了一种灵活而全面的i、r、e参数调整机制,设计和定制不同页面管理策略的用户级管理器对于interval,使用较小的intervali可以增加页面热度收集的频率,并有助于提高测量热度信息的准确性但是,这可能会导致页表或EPT引用的额外开销,并降低系统内存性能。类似地,使用较小的历元e增加了页面移动频率,以获得更好的HMM存储器资源使用和更好的性能。然而,这可能导致系统存储器的额外开销,因为DRAM和SMM对等节点之间的页面移动将占用大的存储器带宽。此外,较大的r参数有助于提高分析和描述具有显著特征的页面引用分布的准确性,但使用较大但不合适的r会降低页面移动的敏感性,影响管理效率。具体来说,我们介绍了两个主要方向,设计不同的HMM管理和优化策略。一种是积极策略,其尝试在每个时期将所有识别的热页面从SMM提升到DRAM节点并且将识别的冷页面降级;另一种是保守策略,其在每个时期仅提升一定百分比的识别的热页面并且将具有相同百分比的识别的冷页面对于一些具有稳定内存访问模式的内存工作负载,主动策略可以立即达到异构内存的最佳资源利用率,并减少长期运行时页面管理开销。对于某些内存热度不规则的密集型工作负载,选择保守的迁移策略要优于激进的策略。 主要原因如下:(1)大量页面的频繁页面迁移可以优化目标工作负载的页面引用延迟,但会带来严重的迁移延迟开销。(2)每个epoch中收集的页面热度可能会有很大的不同,我们需要用它来预测未来的内存引用分布。保守策略有助于提高预测精度和优化管理效率。(3) 页迁移过程占用内存带宽,保守的页迁移可以减少迁
下载后可阅读完整内容,剩余1页未读,立即下载
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)