CN118093197A - 内存页面的迁移方法及装置、内存设备、程序产品 - Google Patents
内存页面的迁移方法及装置、内存设备、程序产品 Download PDFInfo
- Publication number
- CN118093197A CN118093197A CN202410338200.1A CN202410338200A CN118093197A CN 118093197 A CN118093197 A CN 118093197A CN 202410338200 A CN202410338200 A CN 202410338200A CN 118093197 A CN118093197 A CN 118093197A
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- page
- node
- accessed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 684
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013508 migration Methods 0.000 title claims abstract description 31
- 230000005012 migration Effects 0.000 title claims abstract description 31
- 238000012216 screening Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000000694 effects Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000005070 sampling Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种内存页面的迁移方法及装置、内存设备、程序产品,其中,该方法包括:获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息;根据第一内存访问信息从第一内存节点中筛选出第一目标内存页面,以及根据第二内存访问信息从第二内存节点中筛选出第二目标内存页面;将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。通过本申请,解决了相关技术中内存访问性能低的问题,达到提升内存访问性能的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种内存页面的迁移方法及装置、内存设备、程序产品。
背景技术
随着云计算、大数据、人工智能等技术的快速发展,催生了海量的数据,同时数据中心应用程序对于算力的需求激增,为了能够处理数据密集型应用,中央处理器(CentralProcessing Unit,简称为CPU)核心数量越来越多,然而内存在带宽和密度方面的提升速度远远落后于CPU核心数量增长的速度,导致CPU和内存之间的性能差距越来越大,数据驱动内存需求不断增长,而传统的双列直插式存储模块(Dual-Inline-Memory-Modules,简称为DIMM)接口限制了内存性能和密度的提升,无法满足需求,导致出现内存墙,以及在内存容量不足时,CPU访问外部存储的速度下降导致出现IO墙。通过增加成本低、大容量的存储,并构建分层存储子系统可以缓解这一极速问题,但是,分层存储中的存储介质面临高延迟、低带宽的技术瓶颈,应用数据被分置于不同层级的存储介质中,而不同层级的存储介质访问延迟不同,导致应用程序的访问存储介质的性能取决于DRAM内存使用的比例,使得混合内存的访问性能较低。
发明内容
本申请实施例提供了一种内存页面的迁移方法及装置、内存设备、程序产品,以至少解决相关技术中内存访问性能低的问题。
根据本申请的一个实施例,提供了一种内存页面的迁移方法,包括:获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,上述第一内存节点是为目标处理器所分配的第一类型的内存节点,上述第二内存节点是为上述目标处理器分配的第二类型的内存节点,上述目标处理器对上述第二内存节点的操作效率高于上述目标处理器对上述第一内存节点的操作效率;根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面,其中,上述第一目标内存页面是多个上述第一内存页面中被访问的频率大于第一频率阈值的内存页面,上述第二目标内存页面是多个上述第二内存页面中被访问的频率小于第二频率阈值的内存页面;将上述第一目标内存页面迁移至上述第二内存节点,并将上述第二目标内存页面迁移至上述第一内存节点。
根据本申请的又一个实施例,还提供了一种内存设备,包括:第一内存节点和第二内存节点,其中,上述第一内存节点,为目标处理器分配的第一类型的内存节点,上述第一内存节点中包括多个第一内存页面;上述第二内存节点,为上述目标处理器分配的第二类型的内存节点,上述第二内存节点中包括多个第二内存页面,其中,上述目标处理器对上述第二内存节点的操作效率高于上述目标处理器对上述第一内存节点的操作效率;其中,上述目标处理器,用于根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面,并控制上述第一目标内存页面和上述第二目标内存页面的迁移,其中,上述第一目标内存页面是多个上述第一内存页面中被访问的频率大于第一频率阈值的内存页面,上述第二目标内存页面是多个上述第二内存页面中被访问的频率小于第二频率阈值的内存页面。
根据本申请的又一个实施例,还提供了一种内存页面的迁移装置,包括:第一获取模块,用于获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,上述第一内存节点是为目标处理器所分配的第一类型的内存节点,上述第二内存节点是为上述目标处理器分配的第二类型的内存节点,上述目标处理器对上述第二内存节点的操作效率高于上述目标处理器对上述第一内存节点的操作效率;第一筛选模块,用于根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面,其中,上述第一目标内存页面是多个上述第一内存页面中被访问的频率大于第一频率阈值的内存页面,上述第二目标内存页面是多个上述第二内存页面中被访问的频率小于第二频率阈值的内存页面;第一迁移模块,用于将上述第一目标内存页面迁移至上述第二内存节点,并将上述第二目标内存页面迁移至上述第一内存节点。
在一个示例性实施例中,上述第一获取模块,包括:第一采集单元,用于通过第一计数设备按照目标采集频率采集每个上述第一内存页面被访问的次数,以及每个上述第二内存页面被访问的次数,其中,上述第一计数设备设置在上述目标处理器中;第二采集单元,用于通过第二计数设备按照上述目标采集频率采集每个上述第一内存页面被访问的时间,以及每个上述第二内存页面被访问的时间,其中,上述第二计数设备设置在上述目标处理器中;第一确定单元,用于根据每个上述第一内存页面被访问的次数和被访问的时间确定每个上述第一内存页面被访问的频率,并对多个上述第一内存页面的被访问的频率进行排序,将第一排序结果对应存储至第一哈希表中,得到上述第一内存访问信息;第二确定单元,用于根据每个上述第二内存页面被访问的次数和被访问的时间确定每个上述第二内存页面被访问的频率,并对多个上述第二内存页面的被访问的频率进行排序,将第二排序结果对应存储至第二哈希表中,得到上述第二内存访问信息。
在一个示例性实施例中,上述装置还包括:第二获取模块,用于通过第一计数设备按照目标采集频率采集每个上述第一内存页面被访问的次数,以及每个上述第二内存页面被访问的次数之后,获取上述第二内存节点的命中率,其中,上述命中率用于表示上述目标处理器在访问上述第二内存节点时,上述目标处理器待访问的数据包括在上述第二内存节点中的概率;第一调整模块,用于根据上述命中率调整上述目标采集频率,以使调整后的目标采集频率与上述命中率相对应。
在一个示例性实施例中,上述装置还包括:第一确定模块,用于根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面之前,根据多个上述第一内存页面被访问的频率确定上述第一频率阈值;第二确定模块,用于根据多个上述第二内存页面被访问的频率确定上述第二频率阈值。
在一个示例性实施例中,上述装置还包括:第一校准模块,用于获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息之后,利用每个上述第一内存页面被访问的时间对采集的每个上述第一内存页面被访问的次数进行校准,以剔除采集的每个上述第一内存页面被访问的次数中的异常数值;第二校准模块,用于利用每个上述第二内存页面被访问的时间对采集的每个上述第二内存页面被访问的次数进行校准,以剔除采集的每个上述第二内存页面被访问的次数中的异常数值。
在一个示例性实施例中,上述第一迁移模块,包括:第一创建单元,用于在上述第二内存节点中可用的存储空间中创建第一目标存储空间,并将上述第一目标内存页面从上述第一内存节点迁移至上述第一目标存储空间,并在上述第二内存节点中设置访问上述第一目标内存页面的权限;第二创建单元,用于在上述第一内存节点中可用的存储空间中创建第二目标存储空间,并将上述第二目标内存页面从上述第二内存节点迁移至上述第二目标存储空间,并在上述第一内存节点中设置访问上述第二目标内存页面的权限。
根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于根据第一内存访问信息从第一内存节点中筛选出被访问的频率大于第一频率阈值的第一目标内存页面,以及被访问的频率小于第二频率阈值的第二目标内存页面,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。从而可以将访问频率比较高的内存页面迁移到访问速度更快的内存节点中,将访问频率比较低的内存页面迁移到访问速度比较慢的内存节点中。因此,可以解决相关技术中内存访问性能低的问题,达到提升内存访问性能的效果。
附图说明
图1是本申请实施例的一种内存页面的迁移方法的移动终端的硬件结构框图;
图2是根据本申请实施例的内存页面的迁移方法的流程图;
图3是根据本申请实施例的CXL内存和DRAM内存混合使用的拓扑图;
图4是根据本申请实施例的异构分层存储系统中的不同层级介质访问延迟的示意图;
图5是本具体实施例中的内存页面迁移的流程图;
图6是根据本申请实施例的页面迁移示意图;
图7是根据本申请实施例的内存设备的结构框图;
图8是根据本申请实施例的内存页面的迁移装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语″第一″、″第二″等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的一种内存页面的迁移方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的内存页面的迁移方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种内存页面的迁移方法,图2是根据本申请实施例的内存页面的迁移方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,第一内存节点是为目标处理器所分配的第一类型的内存节点,第二内存节点是为目标处理器分配的第二类型的内存节点,目标处理器对第二内存节点的操作效率高于目标处理器对第一内存节点的操作效率;
步骤S204,根据第一内存访问信息从第一内存节点中筛选出第一目标内存页面,以及根据第二内存访问信息从第二内存节点中筛选出第二目标内存页面,其中,第一目标内存页面是多个第一内存页面中被访问的频率大于第一频率阈值的内存页面,第二目标内存页面是多个第二内存页面中被访问的频率小于第二频率阈值的内存页面;
步骤S206,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。
本实施例中上述步骤的执行主体可以为终端、服务器、终端或服务器中设置的具体处理器,或者与终端或者服务器相对独立设置的处理器或者处理设备,但不限于此。
通过上述步骤,由于根据第一内存访问信息从第一内存节点中筛选出被访问的频率大于第一频率阈值的第一目标内存页面,以及被访问的频率小于第二频率阈值的第二目标内存页面,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。从而可以将访问频率比较高的内存页面迁移到访问速度更快的内存节点中,将访问频率比较低的内存页面迁移到访问速度比较慢的内存节点中。因此,可以解决相关技术中内存访问性能低的问题,达到提升内存访问性能的效果。
可选地,目标处理器包括但不限于是中央处理器(Central Processing Unit,简称为CPU)、图像处理器(Graphics Processing Unit,简称为GPU),下面实施例均以CPU为例进行说明。
可选地,内存节点中的内存页面是指物理内存中的一段连续的存储空间,用来存储程序运行时的数据和指令。内存页面通常由操作系统管理,可以被分配给不同的进程使用。在操作系统中,内存页面的大小通常是固定的,比如4KB或者8KB。当程序需要更多的内存时,操作系统会将内存页面分配给程序,并在需要时进行管理和交换。内存页面的管理对于系统的性能和稳定性非常重要。
可选地,上述第一内存节点包括但不限于操作效率低于DRAM的内存节点,例如,计算快速链接CXL(Compute Express Link)内存。CXL内存是建立在PCIe之上的高速低延迟互连技术,支持在CPU和异构设备之间进行高速低延迟的通信,也可以实现内存容量和带宽的扩展。基于CXL的内存扩展方法可以针对系统成本、容量、带宽进行更加细粒度的优化,支持灵活地添加各种内存,而不会影响本机连接的内存。如图3所述,CXL内存主要通过三种协议连接到CPU,分别为CXL.cache、CXL.mem、CXL.io,其中,CXL.cache协议用于设备访问系统的内存,CXL.mem协议用于CPU访问设备内存,CXL.io用于设备的发现、配置、初始化以及中断服务等,CXL在内存扩展场景中,主要使用CXL.mem、CXL.io,支持与DRAM在相同的物理地址空间中进行寻址,并使用标准的内存管理接口进行内存分配管理。CXL内存中包括多个CXL内存页面,均与CPU连接。
可选地,上述第二内存节点包括但不限于是操作效率比较高的内存节点,例如,动态随机存取存储器DRAM(Dynamic Random Access Memory)内存,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。DRAM内存是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。DRAM内存中包括多个DRAM内存页面,均与CPU连接。
可选地,本实施例应用于操作系统内存管理的场景中,在第一内存节点是CXL内存,第二内存节点是DRAM节点时,基于CXL高速互连技术能够有效扩展主机内存的资源,但是在异构分层存储系统中,不同的层的存储介质,访问延迟也不同。相比其他类型的存储介质,CXL内存大幅降低了访问延迟,但是由于Linux内存管理机制是针对DRAM设计的,在CXL内存系统上性能较差,如图4所示,CXL内存的访问延迟在170-250ns,DRAM内存的访问延迟在80-140ns。由此可见,CXL内存与DRAM内存之间仍然存在访问延迟的差距,因此,CPU直接从CXL内存中访问数据的性能将会低于直接从DRAM内存访问数据的性能,在使用DRAM内存和CXL内存的混合存储介质系统中,应用程序的性能取决于DRAM内存资源的比例,因此,本实施例主要用于在通过CXL协议扩展内存资源的同时,提升由DRAM内存和CXL内存的混合存储介质系统的访问性能。
在一个示例性实施例中,获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,包括:通过第一计数设备按照目标采集频率采集每个第一内存页面被访问的次数,以及每个第二内存页面被访问的次数,其中,第一计数设备设置在目标处理器中;通过第二计数设备按照目标采集频率采集每个第一内存页面被访问的时间,以及每个第二内存页面被访问的时间,其中,第二计数设备设置在目标处理器中;根据每个第一内存页面被访问的次数和被访问的时间确定每个第一内存页面被访问的频率,并对多个第一内存页面的被访问的频率进行排序,将第一排序结果对应存储至第一哈希表中,得到第一内存访问信息;根据每个第二内存页面被访问的次数和被访问的时间确定每个第二内存页面被访问的频率,并对多个第二内存页面的被访问的频率进行排序,将第二排序结果对应存储至第二哈希表中,得到第二内存访问信息。
可选地,第一计数设备和第二计数设备均是用于记录特定事件或物体数量的设备。第一计数设备和第二计数设备可以是传感器、计数器等,用于实时或离线地记录数量。例如,在DRAM内存和CXL内存混合使用的场景中,分别通过访问频率计数器、访问时间计数器定期对DRAM内存和CXL内存上每个内存页面的访问状态进行采样,并存放到哈希表中。其中,访问频率计数器用于记录每个内存页面的访问次数,访问时间计数器通过对DRAM、CXL内存页面访问时间进行排序。内存页面被访问的频率和被访问的时间、被访问的次数成正比关系。
本实施例通过第一计数设备和第二计数设备对多个第一内存页面和多个第二内存页面的访问信息进行采集。可以准确、快速的确定出内存页面被访问的状态,以确定出每个内存页面是否需要迁移。
在一个示例性实施例中,通过第一计数设备按照目标采集频率采集每个第一内存页面被访问的次数,以及每个第二内存页面被访问的次数之后,上述方法还包括:获取第二内存节点的命中率,其中,命中率用于表示目标处理器在访问第二内存节点时,目标处理器待访问的数据包括在第二内存节点中的概率;根据命中率调整目标采集频率,以使调整后的目标采集频率与命中率相对应。
可选地,在采集内存页面的状态信息的过程中,可以基于第二内存节点的命中率动态调整采集的频率(即目标采集频率)。例如,在提升目标采集频率后,如果第二内存节点DRAM内存的命中率没有提升,将会降低目标采集频率。同时,在降低目标采集频率出现DRAM内存命中率下降后,会提升目标采集频率,直至DRAM内存的命中率趋于稳定。命中率是通过对DRAM内存的访问占总内存访问的比例确定的。本实施例通过根据第二内存节点的命中率动态调整目标采集频率,可以有效的稳定第二内存节点的命中率,并稳定的采集内存页面的状态信息。
在一个示例性实施例中,根据第一内存访问信息从第一内存节点中筛选出第一目标内存页面,以及根据第二内存访问信息从第二内存节点中筛选出第二目标内存页面之前,上述方法还包括:根据多个第一内存页面被访问的频率确定第一频率阈值;根据多个第二内存页面被访问的频率确定第二频率阈值。
可选地,根据多个第一内存页面被访问的频率的分布情况确定第一频率阈值。根据多个第二内存页面被访问的频率的分布情况确定第二频率阈值。例如,DRAM内存中的内存页面被访问的频率阈值Al为50次、A2为100次,DRAM内存中小于50次的内存页面被定义为冷页,迁移到CXL内存中;在CXL内存中大于100次的内存页面被定义为热页,迁移到DRAM内存中。对于访问频率过高,但是长时间未访问的内存页面,将访问频率改为0,重新排序后,确定新的频率阈值。本实施例通过设置频率阈值,可以准确的确定出内存节点中的冷热内存页面,以及时的进行迁移。
在一个示例性实施例中,获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息之后,上述方法还包括:利用每个第一内存页面被访问的时间对采集的每个第一内存页面被访问的次数进行校准,以剔除采集的每个第一内存页面被访问的次数中的异常数值;利用每个第二内存页面被访问的时间对采集的每个第二内存页面被访问的次数进行校准,以剔除采集的每个第二内存页面被访问的次数中的异常数值。
可选地,剔除异常数值,具体包括:首先,需要确定内存访问的时间间隔,以便进行频率计数。然后,可以使用校对算法来识别和剔除不准确的数据,例如,通过比较多次访问同一内存位置的时间间隔来识别异常值,并排除这些异常值对计数设备的影响。另外,还可以考虑使用平均值或中位数等统计方法来平滑数据,以提高计数设备的准确性。最后,可以通过对比不同校对方法的效果来选择最合适的校对策略。本实施例通过剔除不准确的数据,可以准确的确定出内存页面的访问频率。
在一个示例性实施例中,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点,包括:在第二内存节点中可用的存储空间中创建第一目标存储空间,并将第一目标内存页面从第一内存节点迁移至第一目标存储空间,并在第二内存节点中设置访问第一目标内存页面的权限;在第一内存节点中可用的存储空间中创建第二目标存储空间,并将第二目标内存页面从第二内存节点迁移至第二目标存储空间,并在第一内存节点中设置访问第二目标内存页面的权限。
可选地,第一目标存储空间与第一目标内存页面的存储空间匹配。第一目标内存页面可以是多个,也可以是一个。第二目标内存页面与第二目标内存页面的存储空间匹配。第二目标内存页面可以是多个,也可以是一个。本实施例通过批量完成不同内存页面的迁移,可以保证访问频率高的内存页面始终处于第二内存节点中。
下面结合具体实施例对本申请进行说明:
本具体实施例以CXL内存和DRAM内存之间的内存页面的迁移为例进行说明。图5是本具体实施例中的内存页面迁移的流程图,如图5所示,包括以下步骤:
S501,对内存状态进行采样,获得内存的访问频率计数器和内存访问时间计数器。访问频率计数器记录每个内存页面的访问次数,访问时间计数器通过对DRAM、CXL内存页面访问时间进行排序,并存放到哈希表中。
S502,通过内存访问的时间对内存访问频率计数器进行校对,进一步剔除不准确的数据,并确定热度阈值A1、A2,如果大于热度阈值的页面存在长时间未访问的情况,将当前页面的访问频率设置为0,并重新确定热度阈值B1、B2,根据热度阈值B确定热页内存(被访问的频率大于第一频率阈值的内存页面)和冷页内存(被访问的频率小于第二频率阈值的内存页面)。
S503,根据内存状态热度阈值确定内存分层策略。如图6所示,在DRAM内存中,如果存在热度小于阈值B的热页,那么将页面更新为冷页,并降级到CXL内存。在CXL内存中,如果存在热度大于阈值B的冷页,那么将冷页更新为热页,并升级到DRAM内存中。当存在多个CXL节点时,根据节点与CPU的距离选择升级和降级的目标DRAM,优先选择近距离CPU对应的目标DRAM。在处理热页降级和冷页升级的过程中。针对应用程序生成的不经常访问的文件缓存,优先将这些缓存文件放置于CXL内存,当相关页变得足够热时,将提升到DRAM内存,该策略将有助于提升DRAM容量较少、缓存访问不频繁时的应用程序的性能。
S504,基于内存分层策略,通过系统调用批量完成DRAM内存和CXL内存中的页迁移,确保热页内存始终处于DRAM内存。本实施例采用批量处理当前状态下的热页和冷页,可以进一步减少系统调用的开销,实现系统优化。
S505,在采样过程中,基于DRAM内存的命中率动态调整采样的频率,在提升采样频率后,如果DRAM内存命中率没有提升,将会降低采样频率,同时,在降低采样频率出现DRAM命中率下降后,会提升采样频率,直至DRAM内存命中率趋于稳定。
综上所述,本实施例在DRAM内存和CXL内存混合使用的场景下,基于内存访问频率和时间的精细化冷热内存识别机制,并通过页面状态的分类进行校对以及数据采样频率优化,实现了高精度页面分类以及低开销采样。同时,基于分层策略实现DRAM内存和CXL内存中冷热页的主动迁移,在基于CXL内存扩展内存容量的同时,有效提升了DRAM内存和CXL内存混合存储使用场景下应用程序对内存的访问性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种内存设备,如图7所示,第一内存节点和第二内存节点,其中,所述第一内存节点,为目标处理器分配的第一类型的内存节点,所述第一内存节点中包括多个第一内存页面;所述第二内存节点,为所述目标处理器分配的第二类型的内存节点,所述第二内存节点中包括多个第二内存页面,其中,所述目标处理器对所述第二内存节点的操作效率高于所述目标处理器对所述第一内存节点的操作效率;其中,所述目标处理器,用于根据所述第一内存访问信息从所述第一内存节点中筛选出第一目标内存页面,以及根据所述第二内存访问信息从所述第二内存节点中筛选出第二目标内存页面,并控制所述第一目标内存页面和所述第二目标内存页面的迁移,其中,所述第一目标内存页面是多个所述第一内存页面中被访问的频率大于第一频率阈值的内存页面,所述第二目标内存页面是多个所述第二内存页面中被访问的频率小于第二频率阈值的内存页面。
通过上述内存设备,由于根据第一内存访问信息从第一内存节点中筛选出被访问的频率大于第一频率阈值的第一目标内存页面,以及被访问的频率小于第二频率阈值的第二目标内存页面,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。从而可以将访问频率比较高的内存页面迁移到访问速度更快的内存节点中,将访问频率比较低的内存页面迁移到访问速度比较慢的内存节点中。因此,可以解决相关技术中内存访问性能低的问题,达到提升内存访问性能的效果。
在本实施例中还提供了一种内存页面的迁移装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语″模块″可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的内存页面的迁移装置的结构框图,如图8所示,该装置包括:
第一获取模块82,用于获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,上述第一内存节点是为目标处理器所分配的第一类型的内存节点,上述第二内存节点是为上述目标处理器分配的第二类型的内存节点,上述目标处理器对上述第二内存节点的操作效率高于上述目标处理器对上述第一内存节点的操作效率;
第一筛选模块84,用于根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面,其中,上述第一目标内存页面是多个上述第一内存页面中被访问的频率大于第一频率阈值的内存页面,上述第二目标内存页面是多个上述第二内存页面中被访问的频率小于第二频率阈值的内存页面;
第一迁移模块86,用于将上述第一目标内存页面迁移至上述第二内存节点,并将上述第二目标内存页面迁移至上述第一内存节点。
通过上述装置,由于根据第一内存访问信息从第一内存节点中筛选出被访问的频率大于第一频率阈值的第一目标内存页面,以及被访问的频率小于第二频率阈值的第二目标内存页面,将第一目标内存页面迁移至第二内存节点,并将第二目标内存页面迁移至第一内存节点。从而可以将访问频率比较高的内存页面迁移到访问速度更快的内存节点中,将访问频率比较低的内存页面迁移到访问速度比较慢的内存节点中。因此,可以解决相关技术中内存访问性能低的问题,达到提升内存访问性能的效果。
在一个示例性实施例中,上述第一获取模块,包括:第一采集单元,用于通过第一计数设备按照目标采集频率采集每个上述第一内存页面被访问的次数,以及每个上述第二内存页面被访问的次数,其中,上述第一计数设备设置在上述目标处理器中;第二采集单元,用于通过第二计数设备按照上述目标采集频率采集每个上述第一内存页面被访问的时间,以及每个上述第二内存页面被访问的时间,其中,上述第二计数设备设置在上述目标处理器中;第一确定单元,用于根据每个上述第一内存页面被访问的次数和被访问的时间确定每个上述第一内存页面被访问的频率,并对多个上述第一内存页面的被访问的频率进行排序,将第一排序结果对应存储至第一哈希表中,得到上述第一内存访问信息;第二确定单元,用于根据每个上述第二内存页面被访问的次数和被访问的时间确定每个上述第二内存页面被访问的频率,并对多个上述第二内存页面的被访问的频率进行排序,将第二排序结果对应存储至第二哈希表中,得到上述第二内存访问信息。
在一个示例性实施例中,上述装置还包括:第二获取模块,用于通过第一计数设备按照目标采集频率采集每个上述第一内存页面被访问的次数,以及每个上述第二内存页面被访问的次数之后,获取上述第二内存节点的命中率,其中,上述命中率用于表示上述目标处理器在访问上述第二内存节点时,上述目标处理器待访问的数据包括在上述第二内存节点中的概率;第一调整模块,用于根据上述命中率调整上述目标采集频率,以使调整后的目标采集频率与上述命中率相对应。
在一个示例性实施例中,上述装置还包括:第一确定模块,用于根据上述第一内存访问信息从上述第一内存节点中筛选出第一目标内存页面,以及根据上述第二内存访问信息从上述第二内存节点中筛选出第二目标内存页面之前,根据多个上述第一内存页面被访问的频率确定上述第一频率阈值;第二确定模块,用于根据多个上述第二内存页面被访问的频率确定上述第二频率阈值。
在一个示例性实施例中,上述装置还包括:第一校准模块,用于获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息之后,利用每个上述第一内存页面被访问的时间对采集的每个上述第一内存页面被访问的次数进行校准,以剔除采集的每个上述第一内存页面被访问的次数中的异常数值;第二校准模块,用于利用每个上述第二内存页面被访问的时间对采集的每个上述第二内存页面被访问的次数进行校准,以剔除采集的每个上述第二内存页面被访问的次数中的异常数值。
在一个示例性实施例中,上述第一迁移模块,包括:第一创建单元,用于在上述第二内存节点中可用的存储空间中创建第一目标存储空间,并将上述第一目标内存页面从上述第一内存节点迁移至上述第一目标存储空间,并在上述第二内存节点中设置访问上述第一目标内存页面的权限;第二创建单元,用于在上述第一内存节点中可用的存储空间中创建第二目标存储空间,并将上述第二目标内存页面从上述第二内存节点迁移至上述第二目标存储空间,并在上述第一内存节点中设置访问上述第二目标内存页面的权限。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了另一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本中请的实施例还提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质巾;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处埋器执行该计算机指令,使得该计算机设备执行上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种内存页面的迁移方法,其特征在于,包括:
获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,所述第一内存节点是为目标处理器所分配的第一类型的内存节点,所述第二内存节点是为所述目标处理器分配的第二类型的内存节点,所述目标处理器对所述第二内存节点的操作效率高于所述目标处理器对所述第一内存节点的操作效率;
根据所述第一内存访问信息从所述第一内存节点中筛选出第一目标内存页面,以及根据所述第二内存访问信息从所述第二内存节点中筛选出第二目标内存页面,其中,所述第一目标内存页面是多个所述第一内存页面中被访问的频率大于第一频率阈值的内存页面,所述第二目标内存页面是多个所述第二内存页面中被访问的频率小于第二频率阈值的内存页面;
将所述第一目标内存页面迁移至所述第二内存节点,并将所述第二目标内存页面迁移至所述第一内存节点。
2.根据权利要求1所述的方法,其特征在于,获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,包括:
通过第一计数设备按照目标采集频率采集每个所述第一内存页面被访问的次数,以及每个所述第二内存页面被访问的次数,其中,所述第一计数设备设置在所述目标处理器中;
通过第二计数设备按照所述目标采集频率采集每个所述第一内存页面被访问的时间,以及每个所述第二内存页面被访问的时间,其中,所述第二计数设备设置在所述目标处理器中;
根据每个所述第一内存页面被访问的次数和被访问的时间确定每个所述第一内存页面被访问的频率,并对多个所述第一内存页面的被访问的频率进行排序,将第一排序结果对应存储至第一哈希表中,得到所述第一内存访问信息;
根据每个所述第二内存页面被访问的次数和被访问的时间确定每个所述第二内存页面被访问的频率,并对多个所述第二内存页面的被访问的频率进行排序,将第二排序结果对应存储至第二哈希表中,得到所述第二内存访问信息。
3.根据权利要求2所述的方法,其特征在于,通过第一计数设备按照目标采集频率采集每个所述第一内存页面被访问的次数,以及每个所述第二内存页面被访问的次数之后,所述方法还包括:
获取所述第二内存节点的命中率,其中,所述命中率用于表示所述目标处理器在访问所述第二内存节点时,所述目标处理器待访问的数据包括在所述第二内存节点中的概率;
根据所述命中率调整所述目标采集频率,以使调整后的目标采集频率与所述命中率相对应。
4.根据权利要求2所述的方法,其特征在于,根据所述第一内存访问信息从所述第一内存节点中筛选出第一目标内存页面,以及根据所述第二内存访问信息从所述第二内存节点中筛选出第二目标内存页面之前,所述方法还包括:
根据多个所述第一内存页面被访问的频率确定所述第一频率阈值;
根据多个所述第二内存页面被访问的频率确定所述第二频率阈值。
5.根据权利要求2所述的方法,其特征在于,获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息之后,所述方法还包括:
利用每个所述第一内存页面被访问的时间对采集的每个所述第一内存页面被访问的次数进行校准,以剔除采集的每个所述第一内存页面被访问的次数中的异常数值;
利用每个所述第二内存页面被访问的时间对采集的每个所述第二内存页面被访问的次数进行校准,以剔除采集的每个所述第二内存页面被访问的次数中的异常数值。
6.根据权利要求1所述的方法,其特征在于,将所述第一目标内存页面迁移至所述第二内存节点,并将所述第二目标内存页面迁移至所述第一内存节点,包括:
在所述第二内存节点中可用的存储空间中创建第一目标存储空间,并将所述第一目标内存页面从所述第一内存节点迁移至所述第一目标存储空间,并在所述第二内存节点中设置访问所述第一目标内存页面的权限;
在所述第一内存节点中可用的存储空间中创建第二目标存储空间,并将所述第二目标内存页面从所述第二内存节点迁移至所述第二目标存储空间,并在所述第一内存节点中设置访问所述第二目标内存页面的权限。
7.一种内存设备,其特征在于,包括:第一内存节点和第二内存节点,其中,
所述第一内存节点,为目标处理器分配的第一类型的内存节点,所述第一内存节点中包括多个第一内存页面;
所述第二内存节点,为所述目标处理器分配的第二类型的内存节点,所述第二内存节点中包括多个第二内存页面,其中,所述目标处理器对所述第二内存节点的操作效率高于所述目标处理器对所述第一内存节点的操作效率;
其中,所述目标处理器,用于根据所述第一内存访问信息从所述第一内存节点中筛选出第一目标内存页面,以及根据所述第二内存访问信息从所述第二内存节点中筛选出第二目标内存页面,并控制所述第一目标内存页面和所述第二目标内存页面的迁移,其中,所述第一目标内存页面是多个所述第一内存页面中被访问的频率大于第一频率阈值的内存页面,所述第二目标内存页面是多个所述第二内存页面中被访问的频率小于第二频率阈值的内存页面。
8.一种内存页面的迁移装置,其特征在于,包括:
第一获取模块,用于获取第一内存节点的第一内存访问信息以及第二内存节点的第二内存访问信息,其中,所述第一内存节点是为目标处理器所分配的第一类型的内存节点,所述第二内存节点是为所述目标处理器分配的第二类型的内存节点,所述目标处理器对所述第二内存节点的操作效率高于所述目标处理器对所述第一内存节点的操作效率;
第一筛选模块,用于根据所述第一内存访问信息从所述第一内存节点中筛选出第一目标内存页面,以及根据所述第二内存访问信息从所述第二内存节点中筛选出第二目标内存页面,其中,所述第一目标内存页面是多个所述第一内存页面中被访问的频率大于第一频率阈值的内存页面,所述第二目标内存页面是多个所述第二内存页面中被访问的频率小于第二频率阈值的内存页面;
第一迁移模块,用于将所述第一目标内存页面迁移至所述第二内存节点,并将所述第二目标内存页面迁移至所述第一内存节点。
9.一种计算机程序产品,包括计算机程序,其特征在于,
所述计算机程序被处理器执行时实现权利要求1至6任一项中所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至6任一项中所述的方法的步骤。
11.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至6任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410338200.1A CN118093197A (zh) | 2024-03-22 | 2024-03-22 | 内存页面的迁移方法及装置、内存设备、程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410338200.1A CN118093197A (zh) | 2024-03-22 | 2024-03-22 | 内存页面的迁移方法及装置、内存设备、程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093197A true CN118093197A (zh) | 2024-05-28 |
Family
ID=91147369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410338200.1A Pending CN118093197A (zh) | 2024-03-22 | 2024-03-22 | 内存页面的迁移方法及装置、内存设备、程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093197A (zh) |
-
2024
- 2024-03-22 CN CN202410338200.1A patent/CN118093197A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
CN109299190B (zh) | 分布式存储系统中处理对象的元数据的方法及装置 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN111124277A (zh) | 一种深度学习数据集缓存方法、系统、终端及存储介质 | |
CN110719320B (zh) | 公有云配置调整信息的生成方法和设备 | |
CN106775461B (zh) | 热点数据确定方法、设备及装置 | |
CN110661824B (zh) | 分布式集群中服务器的流量调控方法及存储介质 | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN116149846A (zh) | 一种应用性能优化方法、装置、电子设备及存储介质 | |
CN111552701A (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN114244718A (zh) | 一种输电线路通信网络设备管理系统 | |
US20200272526A1 (en) | Methods and systems for automated scaling of computing clusters | |
CN109521970B (zh) | 一种数据处理方法及相关设备 | |
US20240143626A1 (en) | Shard Adjustment Method, Apparatus, and Device for Time Series Database, and Readable Storage Medium | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN116483740B (zh) | 内存数据的迁移方法、装置、存储介质及电子装置 | |
CN115344358A (zh) | 资源调度方法、装置和管理节点 | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
US11416152B2 (en) | Information processing device, information processing method, computer-readable storage medium, and information processing system | |
CN118093197A (zh) | 内存页面的迁移方法及装置、内存设备、程序产品 | |
CN107918300B (zh) | 基于动态内存控制芯片的边缘计算工业控制系统 | |
CN108989461B (zh) | 一种多控存储均衡方法、装置、终端及存储介质 | |
CN114328604B (zh) | 一种提高集群数据采集能力的方法、装置及介质 | |
CN116405500B (zh) | 基于数据分析和云计算数据分析系统资源管理方法 | |
WO2023151465A1 (zh) | 一种ssd的规格参数的调节方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |