CN116107925B - 数据存储单元处理方法 - Google Patents

数据存储单元处理方法 Download PDF

Info

Publication number
CN116107925B
CN116107925B CN202310372255.XA CN202310372255A CN116107925B CN 116107925 B CN116107925 B CN 116107925B CN 202310372255 A CN202310372255 A CN 202310372255A CN 116107925 B CN116107925 B CN 116107925B
Authority
CN
China
Prior art keywords
data storage
storage unit
data
memory
memory page
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.)
Active
Application number
CN202310372255.XA
Other languages
English (en)
Other versions
CN116107925A (zh
Inventor
张宁
白铠豪
王荣巍
宋卓
欧阳武林
徐宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202310372255.XA priority Critical patent/CN116107925B/zh
Publication of CN116107925A publication Critical patent/CN116107925A/zh
Application granted granted Critical
Publication of CN116107925B publication Critical patent/CN116107925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本说明书实施例提供数据存储单元处理方法,其中所述数据存储单元处理方法包括:确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;将所述空闲数据存储单元确定为待分配的数据存储单元。从而提高了计算机存储资源利用率,实现高效地利用计算机存储资源的目的。

Description

数据存储单元处理方法
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据存储单元处理方法。
背景技术
随着计算机技术的不断发展,在各种类型的计算机服务的广泛应用的同时,则需要有对应的计算机资源支持其运行,但是计算机的存储资源始终是有限的。因此针对计算机存储资源有限的问题,为了避免由于计算机存储资源的限制导致计算机服务无法正常应用,亟需提供一种提高计算机存储资源利用率,高效利用计算机存储资源的方法。
发明内容
有鉴于此,本说明书实施例提供了一种数据存储单元处理方法。本说明书一个或者多个实施例同时涉及一种内存页处理方法,一种数据存储单元处理装置,一种数据存储单元处理系统,一种内存页处理装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据存储单元处理方法,包括:
确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;
在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;
将所述空闲数据存储单元确定为待分配的数据存储单元。
根据本说明书实施例的第二方面,提供了一种内存页处理方法,包括:
确定与进程关联的至少两个内存页,从所述至少两个内存页中确定空闲内存页,并确定与所述内存页关联的目标进程;
在解除所述目标进程与所述空闲内存页的关联关系的情况下,建立所述目标进程与预设内存页之间的关联关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致;
将所述空闲内存页确定为待分配的内存页。
根据本说明书实施例的第三方面,提供了一种数据存储单元处理装置,包括:
第一确定模块,被配置为确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;
关联建立模块,被配置为在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;
第二确定模块,被配置为将所述空闲数据存储单元确定为待分配的数据存储单元。
根据本说明书实施例的第四方面,提供了一种内存页处理装置,包括:
第一确定模块,被配置为确定与进程关联的至少两个内存页,从所述至少两个内存页中确定空闲内存页,并确定与所述内存页关联的目标进程;
关联建立模块,被配置为在解除所述目标进程与所述空闲内存页的关联关系的情况下,建立所述目标进程与预设内存页之间的关联关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致;
第二确定模块,被配置为将所述空闲内存页确定为待分配的内存页。
根据本说明书实施例的第五方面,提供了一种数据存储单元处理系统,包括进程以及数据存储单元或内存页;
所述进程在所述数据存储单元处理系统中执行时,实现所述数据存储单元处理方法或者所述内存页处理方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据存储单元处理方法以及内存页处理方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据存储单元处理方法以及内存页处理方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据存储单元处理方法以及内存页处理方法的步骤。
本说明书提供的数据存储单元处理方法,包括:确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;将所述空闲数据存储单元确定为待分配的数据存储单元。
具体的,本方法通过从数据处理对象关联的至少两个数据存储单元中,确定空闲数据存储单元,以及空闲数据存储单元关联的目标数据处理对象,并在解除该空闲数据存储单元与目标数据处理对象的关联关系的情况下,建立目标数据处理对象与预设数据存储单元之间的关联关系,从而释放空闲数据存储单元对应的存储资源,获得待分配的数据存储单元,从而提高了计算机存储资源利用率,实现高效地利用计算机存储资源的目的。
附图说明
图1是本说明书一个实施例提供的一种数据存储单元处理方法的应用场景示意图;
图2是本说明书一个实施例提供的一种数据存储单元处理方法的流程图;
图3是本说明书一个实施例提供的一种数据存储单元处理方法的处理过程流程图;
图4是本说明书一个实施例提供的一种内存页处理方法的流程图;
图5是本说明书一个实施例提供的一种数据存储单元处理装置的结构示意图;
图6是本说明书一个实施例提供的一种内存页处理装置的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
内存回收:通过将内存以页为单位迁移至外围存储设备(NVMe,SSD等)来回收内存。在内存回收阶段,可以被回收的内存页主要分为两种:文件页与匿名页。
匿名页:即anonymous page,是指没有文件背景的页面,如堆,栈,数据段等。对于匿名页来说,在存储设备中并没有相应的后备存储空间。如果需要将匿名页交换并回收内存,需要额外在存储设备开辟临时空间作为匿名页的暂存区域,这块区域也被称为内存交换区(Swap Space)。一般情况下会将某一存储设备切分并创建为Swap分区,挂载在OS中。
换入/换出:当进程向OS请求内存发现不足时,OS会把内存中暂时不用的文件页/匿名页交换出去,放在文件或Swap Space中,这个过程称为换出(Swap out)。当进程需要再次读写被交换出去的内存,且还可从OS获取相应的内存页时,又会把数据从文件或者SwapSpace交换回物理内存中,这个过程称为换入(Swap in)。交换的好处在于OS可以支持超出物理内存的进程运行,避免进程由于OOM被终止。而缺点是在换入换出时引入了IO开销,相较于纯内存读写时延呈倍数增长,降低了进程整体的性能。
主/次缺页:在产生缺页中断时,次缺页所需的页已通过Page Cache预留在内存中,相较于主缺页无需额外IO/解压缩将对应数据重新加载回内存。因此,次缺页中断的开销远小于主缺页中断。
NVMe:Nonvolatile Memory express的缩写,是指非易失性快速存储器。
SSD:Solid State Disk或Solid State Drive的缩写,是指固态硬盘。
OS:Operating System的缩写,是指操作系统。
OOM:Out Of Memory的缩写,中文名称为内存溢出,是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于系统能提供的内存。
IO:Input/Output的缩写,中文名称为输入/输出,是指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。
page cache:又称pcache,其中文名称为页高速缓冲存储器。
KSM:Kernel SamePage Merging的缩写,是内核中的一个进程,该KSM允许内核在多个进程(包括虚拟机)之间共享完全相同的内存页。KSM让内核扫描检查正在运行中的程序并且比较他们的内存,若发现相同的内存页,就将相同的内存页合并成单一的内存页,标识为“写时复制”。
Kernel:系统内核。
SLO:是指服务等级目标,其指定了服务所提供功能的一种期望状态。
QoS:Quality of Service的缩写,中文名称为服务质量,是指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力。
Kswapd:是一种内核线程。
memcg:memory control groups的简称,中文名称为内存控制组。
inactive_list:是指不活跃内存页链表。该inactive_list是系统内核维护的一个双向链表。这个链表中记录有进程很少会访问的内存页,所以进行内存回收时,主要回收这个链表中的内存页。
active_list:是指活跃内存页链表。该active_list是系统内核维护的一个双向链表。这个链表中记录有进程会经常访问的内存页,所以进行内存回收时,不应该回收这个链表中的内存页。
slab:是操作系统的一种内存分配机制。
页表:英文名称为Page Table Entry,简称为PTE,是指内存分页存储机制中的构成元素,由PDE(页目录表)指向,每一个表项对应一个物理页。
reverse mapping:内存逆向映射。
VMA:Virtual Memory Area的缩写,指虚拟内存空间。
Migration entry:页面迁移入口。
COW:Copy-On-Write的缩写,是指写时复制技术,是一种计算机程序设计领域的内存优化策略。
零页:操作系统初始化过程中为进程分配了的内存页,在初始化过程中这个内存页中全部被填充0。
系统零页:操作系统初始化过程中分配了的一个内存页,这个内存页中全部被填充0。系统零页可被复用,填充到任何全为0的内存页上。当进程向系统零页中写入数据,从而触发写保护的情况下,会为该进程再次分配新的内存页,该进程会将数据写入新的内存页。
随着计算机技术的不断发展,在各种类型的计算机服务的广泛应用的同时,则需要有对应的计算机资源进行支持其运行,但是计算机的计算资源、存储资源等始终是有限的。例如,随着计算机资源统一调度地推进,在云原生的场景中需要支持的计算机服务类型的丰富度以及负载的SLO 差异化程度将进一步逐步提升。为了保持资源效率的竞争力,需要将已分配但尚未使用或使用频率不高的内存资源进行重复利用,从而提高资源利用率。或者针对QoS要求不高的任务(例如在离线任务中其对于QoS要求不高),可以适当地降低该任务内存使用需求,以满足对QoS要求较高的任务的内存需求。然而,由于内存惰性回收的特点,分配的内存资源会趋近被用尽并维持在高水位,导致容易触发异步内存回收或者直接内存回收,从而引起计算机服务的性能波动,且内存很快成为了提高利用率的瓶颈。因此,需要保证在混合负载下,通过合理地回收内存页,并针对延迟敏感和批量作业提供有差别地内存QoS保障。
针对上述问题,本说明书提供了两种方案。在第一种方案中,内核会在内存紧张时唤醒Kswapd进行异步回收。具体地,当内存水位低于最低水位线阈值时,会唤醒kswapd以memcg的粒度或者整机扫描内存页链表,在inactive_list中寻找可被回收的文件页或匿名页,在写回磁盘后将对应的内存页释放以缓解内存压力。
但是,该方案的缺点在于:第一,Kswapd仅当内存水位低于最低水位线阈值时才会被触发,不能以主动形式触发提前回收冷内存。第二,inactive_list的内存页虽然相较于active_list较冷,但也无法区分具体的冷热程度。第三,其在内存回收时没有考虑零页的特殊性,并未用系统零页替代,而是将其写回磁盘。 综上三点,其不能主动释放在系统中的冷内存,并且会产生过多的主缺页,影响应用性能。
在第二种方案中,Kernel中有一个KSM守护进程ksmd,它会定期扫描用户向它注册的内存区域,寻找到相同的页面就会将其合并,并用一个添加了写保护的页面来代替。当有进程尝试写入该页面时,Kernel会自动为其分配一个新的页面,然后将新数据写入到这个新页面。该方案的缺点在于:第一,在于扫描时会自动合并所有相同的页,并没有考虑零页的特殊性;第二, KSM在合并内存页时并不会区分slab,会导致大量的slab访问开销;第三,其在页合并时并没有通过冷热程度做区分。综上三点,由于不断地产生过多主缺页,极大地影响了应用性能。
基于此,在本说明书中,提供了一种数据存储单元处理方法,本说明书同时涉及一种内存页处理方法,一种数据存储单元处理系统,一种数据存储单元处理装置,一种内存页处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据存储单元处理方法的应用场景示意图,基于图1可知,本方法通过定期扫描进程页表,根据访问位对内存中的零页进行冷热监测,在确定内存页中具有冷零页的情况下,解除该冷零页和其对应的进程之间的内存映射关系,并用系统零页替换进程对应的冷零页,释放该冷零页对应的内存资源,从而通过用系统零页替换冷零页的方式,避免过多IO导致性能下降。
图2示出了根据本说明书一个实施例提供的一种数据存储单元处理方法的流程图,具体包括以下步骤。
步骤202:确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象。
在本说明书提供的实施例中,本说明书提供的数据存储单元处理方法可以通过一个进程或程序实现;通过将该进程或者程序运行在计算设备中运行,从而对该计算设备中的数据存储单元进行处理。在本说明书提供的实施例中,该数据存储单元处理方法可以应用于服务器、数据库、客户端、智能终端和/或移动终端等计算设备。具体应用的计算设备可以根据实际应用进行设置,本说明书对此不作具体限制。
其中,该数据存储单元可以理解为被划分为进行数据存储的物理存储单元。在实际应用中,为了提高存储资源的利用率,便于对存储资源进行管理,会将存储资源划分为多个数据存储单元。例如,将内存划分为多个内存页、将磁盘划分为多个扇区等。在本说明书提供的实施例中,该数据存储单元可以为内存中的数据存储单元,例如内存中的内存页。本方法中需要进行处理的内存页可以为文件页和/或匿名页,本说明书对此不作具体限制。该数据存储单元可以为存储设备中的数据存储单元,该存储设备可以为磁盘、外部存储设备等,基于此,该存储设备中的数据存储单元可以为磁盘中的扇区、磁盘的分区等。在本说明书提供的实施例中,还可以将寄存器组中的寄存器作为单独的存储单元,从而便于管理寄存器资源,基于此,该数据存储单元可以为寄存器。此外,该数据存储单元还可以为缓存。
数据处理对象可以理解为能够对数据存储单元中的数据进行处理的对象,包括但限于进程、程序、脚本等对象。需要说明的是,该数据处理对象在执行过程中会与一个或多个数据存储单元相关联,从而对其相关的数据存储单元中的数据进行处理。对数据的处理方式包括但不限于读取、写入、修改、删除等。
空闲数据存储单元可以理解为该数据存储单元中空闲的、且没有被写入数据的数据存储单元。也称为冷数据存储单元。在本说明书提供的一实施例中,会为进程分配对应的内存页,该内存页在初始状态是一个数据全为0的内存页,也即是零页。但是,该进程若长时间不向该内存页中写入数据,会导致该内存页无法发挥数据存储的作用,从而造成存储资源浪费。基于此,该空闲数据存储单元可以理解为初始化的、且未写入数据的数据存储单元,也即是初始化的、且未写入数据的内存页,又称为冷零页。在本说明书提供的一实施例中,该空闲数据存储单元可以为被分配给数据处理对象,但没有被写入数据的缓存、寄存器或磁盘分区等数据存储单元,由于该空闲数据存储单元被占用且没有被写入数据,从而导致存储资源浪费的问题。
目标数据处理对象可以理解为能对空闲数据存储单元中的数据进行处理的数据存储单元。
在本说明书提供的一实施例中,为了准确的确定空闲数据存储单元,本方法会监测该数据存储单元的存储状态信息,并基于该存储状态信息快速且准确地确定出空闲数据存储单元。具体的,所述从所述至少两个数据存储单元中确定空闲数据存储单元,包括:
确定所述至少两个数据存储单元的存储状态信息;
根据所述存储状态信息从所述至少两个数据存储单元中确定空闲数据存储单元。
其中,该存储状态信息可以理解为表征该数据存储单元是否长时间没有被访问的状态信息。也即是,该存储状态信息可以为表征该数据存储单元冷热程度的信息。所述长时间是指特定时间阈值,其可以根据实际需要进行限定,例如该长时间可以为1分钟、10秒钟等。
具体地,本方法通过实时监测该至少两个数据存储单元的被访问情况,从而确定出该至少两个数据存储单元的存储状态信息;然后基于存储状态信息从该至少两个数据存储单元中确定出空闲的数据存储单元。
在本说明书提供的一实施例中,为了准确的确定空闲数据存储单元,需要对该数据存储单元的存储状态信息进行监测,具体的,所述确定所述至少两个数据存储单元的存储状态信息,包括:
监测所述数据处理对象针对所述至少两个数据存储单元中数据的处理操作信息,并根据所述处理操作信息确定所述至少两个数据存储单元的存储状态信息;或者
监测所述至少两个数据存储单元中数据的当前存储状态,并根据所述当前存储状态确定所述至少两个数据存储单元的存储状态信息。
其中,该处理操作可以理解为针对数据的读取、删除、写入和/或修改等操作。该处理操作信息可以理解为用于记录该处理操作的次数和/或类型的信息,例如,进程访问内存页所产生的访问位。
当前存储状态可以理解为数据在数据存储单元中的存储格式、所占容量大小等信息。
下面以本说明书在针对内存冷零页的异步回收场景下的应用为例,对本方法进行说明。该数据存储单元为内存页,该空闲数据存储单元为冷零页。基于此,实现该数据存储单元处理方法的进程,会每个定期扫描各进程对应的页表,根据页表对应的访问位,判断该页表对应的内存页是否在这一周期内被访问。如果被访问,该进程会将该内存页对应的冷程度参数设置为0,如果未访问,则将该内存页对应的冷程度参数+1。其中,该一周期的范围可以根据实际需要进行设置,例如1分钟、10秒钟等。该冷程度参数可以为上述存储状态信息。
或者,实现该数据存储单元处理方法的进程,会每个定期扫描各进程对应内存页,根据该内存页中数据所占空间大小、数据格式等参数,判断该内存页是否在这一周期内被访问。如果被访问,该进程会将该内存页对应的冷程度参数设置为0,如果未访问,则将该内存页对应的冷程度参数+1。
在本说明书提供的一实施例中,该数据存储单元处理方法可以是在操作系统层设计的一种内存冷零页的异步回收方案,通过定期扫描进程页表,根据访问位识别出对应内存页的冷热程度,根据冷热程度定制化回收策略。在内存页回收中,需要判断内存页是否为零页,在考虑页面同步的基础上,后续将零页用系统零页替换。从而基于系统内核提供的内存回收能力,安全稳定地提高内存实际利用率,为统一调度中的高优先级计算机服务提供更高效地保障。具体的,所述根据所述存储状态信息从所述至少两个数据存储单元中确定空闲数据存储单元,包括:
根据所述存储状态信息从所述至少两个数据存储单元中确定候选数据存储单元;
根据所述候选数据存储单元中数据的数据格式,从所述候选数据存储单元中确定空闲数据存储单元。
其中,该候选数据存储单元可以为该至少两个数据存储单元中所有空闲的数据存储单元,也即是长时间没有被访问的数据存储单元,例如,冷内存页、冷磁盘分区、冷缓存单元等。该空闲数据存储单元可以为该候选数据存储单元中,没有被写入数据的数据存储单元。例如,上述冷零页;或者分配给特定数据处理对象但从未写入数据的磁盘分区、缓存等。该从未写入数据的磁盘分区、缓存保持初始化状态,其存储的数据均为0。
该数据格式可以理解为表征数据存储单元中数据是以何种格式进行存储的;包括但不限于是否按全0的格式存储等。
沿用上例,在获得内存页的冷程度参数之后,进程会周期性的触发主动异步回收,根据所需的冷热程度遍历每个内存控制组内存页所对应的inactive list,从inactivelist中选择符合所需冷程度的内存页。比如,将inactive list中冷程度参数大于等于3的内存页,确定为冷内存页。在确定冷内存页之后,会将该冷内存页从访问列表中删除,从而将冷内存页隔离,避免其他进程对该冷内存页进行访问。
在确定出冷内存页之后,根据冷内存页中的数据,从该冷内存页中选择出数据为全0的冷零页。
此外,需要说明的是,在本说明书提供的实施例中,针对候选数据存储单元中除空闲数据存储单元之外的其他数据存储单元,会直接对该其他数据存储单元进行回收。具体操作包括:将该其他数据存储单元中的数据备份至磁盘中的数据备份区域,并将该其他数据存储单元确定为待分配的数据存储单元。后续当需要使用备份数据的情况下,会从数据备份区域中获取该备份数据。例如,针对冷内存页中除冷零页之外的其他内存页,会将该其他内存页中的数据备份至本地磁盘中的内存交换区,并回收该其他内存页。后续当需要使用备份数据的情况下,会从内存交换区中将该数据转移至内存中。
步骤204:在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系。
其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致。
其中,关联关系可以理解为目标数据处理对象与该空闲数据存储单元之间的映射关系。例如,内存页与进程之间的内存映射关系等。
该预设数据存储单元可以理解为预设设置的、用于代替空闲数据存储单元与目标数据处理对象建立连接关系的数据存储单元。该预设数据存储单元中的数据与空闲数据存储单元中的数据一致。例如,该预设数据存储单元为系统零页,该冷零页中的数据和该系统零页中的数据均为全0。在本说明书提供的实施例中,该空闲数据存储单元可以为多个;该预设数据存储单元为一个。由于数据相同,该预设数据存储单元可以代替多个空闲数据存储单元,与该目标数据处理对象建立关联关系,从而释放多个空闲数据存储单元的存储资源。当目标数据处理对象需要读取数据时,从该预设数据存储单元中读取;当目标数据处理对象需要写入数据时,则不向预设数据存储单元中写入数据,而是重新为该目标数据处理对象分配数据存储单元,并将数据写入至重新分配的数据存储单元。
在本说明书提供的实施例中,在建立目标数据处理对象与预设数据存储单元之间的关联关系之前,需要解除该目标数据处理对象与空闲数据存储单元之间的关联关系。而解除关联关系的过程需要较长的时间,此过程中进程可能会向空闲数据存储单元中写入数据。为了避免错误删除数据,因此,在解除关联关系过程中,需要实时监测该空闲数据存储单元是否被写入新的数据,若是,则终止解除目标数据处理对象与空闲数据存储单元之间的关联关系的操作,恢复目标数据处理对象与空闲数据存储单元之间的关联关系;若否,则完成解除目标数据处理对象与空闲数据存储单元之间的关联关系的操作,具体的,所述在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系之前,还包括:
执行针对所述目标数据处理对象与所述空闲数据存储单元的关联关系解除操作,并监测所述空闲数据存储单元中数据的数据格式;
在确定所述关联关系解除操作执行完成、且确定所述数据格式满足预设条件的情况下,确定解除所述目标数据处理对象与所述空闲数据存储单元的关联关系。
其中,该预设条件可以理解为预先设计的、用于判断解除关联关系的操作是否能够执行完成的条件。若该数据格式满足预设条件,则确定能够执行完成;若该数据格式不满足预设条件,则确定不能够执行完成。
具体的,本方法在建立目标数据处理对象与预设数据存储单元之间的关联关系之前,需要执行针对目标数据处理对象与空闲数据存储单元的关联关系解除操作,并实时监测该空闲数据存储单元中数据的数据格式。当确定关联关系解除操作执行完成、并且确定数据格式满足预设条件的情况下,确定解除目标数据处理对象与所述空闲数据存储单元的关联关系,从而在释放存储资源的同时,避免了数据被错误删除的问题。
在本说明书提供的一实施例中,所述确定所述数据格式满足预设条件,包括:
在确定所述数据格式与预设数据格式一致的情况下,确定所述数据格式满足预设条件;或者
根据所述数据格式确定所述空闲数据存储单元中的数据没有变更的情况下,确定所述数据格式满足预设条件。
其中,预设数据格式可以理解为预先设置的、用于判断该空闲数据存储单元中的数据是否被更改的数据格式。例如,该预设数据格式可以为数据全为0的格式。
沿用上例,在解除冷零页与进程之间的映射关系的过程中,实时监测该冷零页中的数据格式是否为全0。若是,则确定冷零页没有被写入新的数据,该冷零页可以被回收。若否,则确定冷零页被写入新的数据,该冷零页不能够回收。
或者,在解除冷零页与进程之间的映射关系的过程中,实时监测该冷零页中的数据容量大小等数据格式,从而根据数据格式的变化确定该冷零页中是否被写入了新的数据,若是,则确定冷零页被写入新的数据,该冷零页不能够回收。若否,则确定冷零页没有被写入新的数据,该冷零页可以被回收。
在本说明书提供的一实施例中,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,所述执行针对所述目标数据处理对象与所述空闲数据存储单元的关联关系解除操作,包括:
确定目标进程和空闲内存页之间的页表,并清除所述页表,以确定所述目标进程与所述空闲内存页的关联关系解除。
沿用上例,本方法解除进程与冷零页之间的映射关系的方式为:通过反向映射(reverse mapping)的方式,遍历该冷零页对应的虚拟内存空间(VMA),并获取相应锁,从而将该虚拟内存空间锁定,避免其他进程访问该虚拟内存空间。基于页面迁移的方式,将冷零页所有相关页表(PTE)设为Migration entry,后续通过异步的方式将该页表删除,避免其他方式同步访问更改内存页内容。
在清除内存页页映射过程中,需要判断冷零页是否为零页,若为零页,则确定冷零页与进程之间的映射关系解除完成,再将冷零页替换为系统零页则不会有任何页同步错误。
在本说明书提供的一实施例中,在确定解除目标数据处理对象与空闲数据存储单元的关联关系的情况下,建立目标数据处理对象与预设数据存储单元之间的关联关系,从而通过用预设数据存储单元替换空闲数据存储单元的方式,无需对空闲数据存储单元进行备份,避免由于过多备份所造成的大量IO操作,避免数据传输性能下降的问题。具体的,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,所述建立所述目标数据处理对象与预设数据存储单元之间的关联关系,包括:
确定目标进程与空闲内存页之间的虚拟内存空间,并建立所述虚拟内存空间与预设内存页之间的映射关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致。
沿用上例,本方法解除进程与冷零页之间的映射关系之后,会确定进程与冷零页之间的虚拟内存空间,并建立该系统零页与虚拟内存空间之间的内存映射,从而用系统零页替换进程对应的冷零页。
后续进程针对这段虚拟内存空间的访问,如果是读访问,则可以正常读;如果是写访问,则重新触发缺页中断,为进程申请一个新的内存页。整个申请新内存页的方式可以采用COW的机制。
步骤206:将所述空闲数据存储单元确定为待分配的数据存储单元。
具体的,在建立目标数据处理对象与预设数据存储单元之间的关联关系之后,则可以释放该空闲数据存储单元的存储资源,将空闲数据存储单元确定为待分配的数据存储单元,后续能够将该数据存储单元分配至其他数据处理对象。
进一步的,在本说明书提供的一实施例中,所述将所述空闲数据存储单元确定为待分配的数据存储单元之后,还包括:
确定所述待分配的数据存储单元分配至待执行的数据处理对象。
沿用上例,在回收冷零页之后,当需要为其他进程分配内存页的情况下,会将回收的冷零页分配至该进程,从而保证内存资源的复用,提高存储效率。
需要说明的是,上述实施例中以数据存储单元为内存中的内存页为例进行说明,在实际应用中,该数据存储单元可以为磁盘中的磁盘扇区、寄存器组中的寄存器、缓存等。具体可以包括:确定与数据处理对象关联的至少两个磁盘扇区、寄存器或缓存,从所述至少两个磁盘扇区、寄存器或缓存中确定空闲磁盘扇区、空闲寄存器或空闲缓存,并确定与空闲磁盘扇区、空闲寄存器或空闲缓存关联的目标数据处理对象;在解除目标数据处理对象与空闲磁盘扇区、空闲寄存器或空闲缓存的关联关系的情况下,建立目标数据处理对象与预设磁盘扇区、预设寄存器或预设缓存之间的关联关系;其中,所述预设磁盘扇区中的数据与所述空闲磁盘扇区中的数据一致、所述预设寄存器中的数据与所述空闲寄存器中的数据一致或者所述预设缓存中的数据与所述空闲缓存中的数据一致;将空闲磁盘扇区、空闲寄存器或空闲缓存确定为待分配的磁盘扇区、寄存器或缓存。
在本说明书提供的一实施例中,本说明书提供的数据存储单元处理方法,能够接收目标用户或目标设备发送的、针对该数据存储单元的处理请求。该目标设备包括但不限于服务器、客户端等。本说明书提供的数据存储单元处理方法在接收到该处理请求之后,响应于该处理请求执行上述步骤202至步骤206的内容。从而通过提供主动回收接口的方式,接收目标用户和/或目标设备通过该主动回收接口发送的处理请求,使得目标用户和/或目标设备能够基于实际需求对数据存储单元进行处理,达到根据实际需要进行存储资源回收的目的。
本说明书提供的数据存储单元处理方法,通过从数据处理对象关联的至少两个数据存储单元中,确定空闲数据存储单元,以及空闲数据存储单元关联的目标数据处理对象,并在解除该空闲数据存储单元与目标数据处理对象的关联关系的情况下,建立目标数据处理对象与预设数据存储单元之间的关联关系,从而释放空闲数据存储单元对应的存储资源,获得待分配的数据存储单元,从而提高了计算机存储资源利用率,实现高效地利用计算机存储资源的目的。
下述结合附图3,以本说明书提供的数据存储单元处理方法在针对内存冷零页的异步回收场景下的应用为例,对所述数据存储单元处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据存储单元处理方法的处理过程流程图,具体包括以下步骤。
步骤302:进程定期扫描。
具体的,本方法会每个定期扫描各进程对应的页表,根据页表对应的访问位,判断该页表对应的内存页是否在这一周期内被访问。如果被访问,该进程会将该内存页对应的冷程度参数设置为0,如果未访问,则将该内存页对应的冷程度参数+1。
步骤304:主动异步回收。
具体的,在获得内存页的冷程度参数之后,进程会周期性地触发主动异步回收。
步骤306:遍历inactive list。
具体的,根据所需的冷热程度遍历每个内存控制组内存页所对应的inactivelist,从inactive list中选择符合所需冷程度的内存页。比如,将inactive list中冷程度参数大于等于3的内存页,确定为冷内存页。在确定冷内存页之后,会将该冷内存页从访问列表中删除,从而将冷内存页隔离,避免其他进程对该冷内存页进行访问。
步骤308:判断是否为零页,若是执行步骤312,若否执行步骤310。
具体的,在确定出冷内存页之后,根据冷内存页中的数据,从该冷内存页中选择出数据为全0的冷零页。若该内存页为冷零页,则执行步骤312;若该内存页不是冷零页,则执行步骤310。
步骤310:回收。
具体的,针对冷内存页中除冷零页之外的其他内存页,会将该其他内存页中的数据备份至本地磁盘中的内存交换区,并回收该其他内存页。后续当需要使用备份数据的情况下,会将该数据从内存交换区转移至内存中。
步骤312:获得VMA锁。
具体的,通过反向映射(reverse mapping)的方式,遍历该冷零页对应的虚拟内存空间(VMA),并获取相应锁,从而将该虚拟内存空间锁定,避免其他进程访问该虚拟内存空间。
步骤314:清除页映射。
具体的,基于页面迁移的方式,将冷零页所有相关页表(PTE)设为迁移条目(Migration entry),后续通过异步的方式将该页表删除,避免其他方式同步访问更改内存页内容。
步骤316:判断是否为零页;若是执行步骤320,若否执行步骤318。
具体的,在解除映射关系的过程中需要较长的时间,此过程中进程可能会向冷零页中写入数据。为了避免错误删除数据,因此需要实时监测该冷零页中的数据格式是否为全0。若是,则确定冷零页没有被写入新的数据,确定该冷零页可以被回收,执行步骤320。若否,则确定冷零页被写入新的数据,确定该冷零页不能够回收,执行步骤318。
步骤318:清除中间状态页标志。
其中,中间状态页标志是指页表(PTE)设为Migration entry。
具体的,清除为页表对应的迁移条目标志,停止对页表的异步回收。
步骤320:填充零页并释放。
具体的,解除进程与冷零页之间的映射关系之后,会确定进程与冷零页之间的虚拟内存空间,并建立该系统零页与虚拟内存空间之间的内存映射,从而用系统零页替换进程对应的冷零页,并释放该冷零页对应的内存资源。
基于上述步骤可知,本说明书提供的数据存储单元处理方法,在操作系统层设计了一种替换内存冷零页的异步回收方案,该方案提供总内存中零页的冷热监测,以时间维度区分零页的冷热。通过定期扫描进程页表,根据访问位识别出对应匿名页的冷热程度,根据冷热程度定制化回收策略。在内存回收过程中,首先判断匿名页是否为零页,在考虑页面同步的基础上,将零页用系统零页替换。从而用系统零页替换冷零页的方式,避免过多IO导致性能下降。
本方法相比内核中现有的异步内存回收方案,可以基于定期扫描的匿名页冷热,对冷匿名页中的零页用系统零页进行替换,并提供主动回收接口。优点在于相较于未区分冷热的回收,冷页缺页中断次数远低于热页,且系统零页不需要通过IO写回,在缺页中断时也不需要重新读入内存,其时延开销及对应用的影响远小于上述两种回收方案。具体的,本方法相较于kswapd,可以通过主动地触发内存回收提前回收冷内存。此外,通过定期扫描记录了页面的冷热程度更好地区分了哪些页回收后不容易重新再被访问。最后,本方法考虑了零页的特殊性,利用系统零页替代匿名冷零页,避免过多的主缺页。因此,本方法相较于KSM,对匿名零页进行了特殊的替换处理,并且在回收时通过冷热程度做区分。
同时,本方案可在主动内存回收时,避免匿名零页写回磁盘的IO开销以及读入内存开销。在应用侧提供更稳定的内存成本解决方案,避免应用侧请求延时抖动。
因此,本方法对于冷零页较多的应用场景,降低内存开销,提高内存利用率具有较好的作用,以及具有良好的市场前景和应用价值。
图4示出了根据本说明书一个实施例提供的一种内存页处理方法的流程图,具体包括以下步骤。
步骤402:确定与进程关联的至少两个内存页,从所述至少两个内存页中确定空闲内存页,并确定与所述内存页关联的目标进程。
步骤404:在解除所述目标进程与所述空闲内存页的关联关系的情况下,建立所述目标进程与预设内存页之间的关联关系。
其中,所述预设内存页中的数据与所述空闲内存页中的数据一致。
步骤406:将所述空闲内存页确定为待分配的内存页。
上述为本实施例的一种内存页处理方法的示意性方案。需要说明的是,该内存页处理方法的技术方案与上述的数据存储单元处理方法的技术方案属于同一构思,内存页处理方法的技术方案未详细描述的细节内容,以及内存页处理方法中术语的解释,均可以参见上述数据存储单元处理方法的技术方案的描述,在此不过多赘述。
本说明书提供的内存页处理方法,通过从进程关联的至少两个内存页中,确定空闲内存页,以及空闲内存页关联的目标进程,并在解除该空闲内存页与目标进程的关联关系的情况下,建立目标进程与预设内存页之间的关联关系,从而释放空闲内存页对应的内存资源,获得待分配的内存页,从而提高了计算机内存资源利用率,实现高效地利用计算机内存资源的目的。
与上述方法实施例相对应,本说明书还提供了数据存储单元处理装置实施例,图5示出了本说明书一个实施例提供的一种数据存储单元处理装置的结构示意图。如图5所示,该装置包括:
第一确定模块502,被配置为确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;
关联建立模块504,被配置为在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;
第二确定模块506,被配置为将所述空闲数据存储单元确定为待分配的数据存储单元。
确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;
在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致;
将所述空闲数据存储单元确定为待分配的数据存储单元。
可选地,所述第一确定模块502,还被配置为:
确定所述至少两个数据存储单元的存储状态信息;
根据所述存储状态信息从所述至少两个数据存储单元中确定空闲数据存储单元。
可选地,所述第一确定模块502,还被配置为:
监测所述数据处理对象针对所述至少两个数据存储单元中数据的处理操作信息,并根据所述处理操作信息确定所述至少两个数据存储单元的存储状态信息;或者
监测所述至少两个数据存储单元中数据的当前存储状态,并根据所述当前存储状态确定所述至少两个数据存储单元的存储状态信息。
可选地,所述第一确定模块502,还被配置为:
根据所述存储状态信息从所述至少两个数据存储单元中确定候选数据存储单元;
根据所述候选数据存储单元中数据的数据格式,从所述候选数据存储单元中确定空闲数据存储单元。
可选地,所述数据存储单元处理装置,还包括关联解除模块,被配置为:
执行针对所述目标数据处理对象与所述空闲数据存储单元的关联关系解除操作,并监测所述空闲数据存储单元中数据的数据格式;
在确定所述关联关系解除操作执行完成、且确定所述数据格式满足预设条件的情况下,确定解除所述目标数据处理对象与所述空闲数据存储单元的关联关系。
可选地,所述关联解除模块,还被配置为:
在确定所述数据格式与预设数据格式一致的情况下,确定所述数据格式满足预设条件;或者
根据所述数据格式确定所述空闲数据存储单元中的数据没有变更的情况下,确定所述数据格式满足预设条件。
可选地,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,所述关联解除模块,还被配置为:
确定目标进程和空闲内存页之间的页表,并清除所述页表,以确定所述目标进程与所述空闲内存页的关联关系解除。
可选地,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,关联建立模块504,还被配置为:
确定目标进程与空闲内存页之间的虚拟内存空间,并建立所述虚拟内存空间与预设内存页之间的映射关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致。
可选地,所述数据存储单元处理装置,还包括单元分配模块,被配置为:
确定所述待分配的数据存储单元分配至待执行的数据处理对象。
本说明书提供的数据存储单元处理装置,通过从数据处理对象关联的至少两个数据存储单元中,确定空闲数据存储单元,以及空闲数据存储单元关联的目标数据处理对象,并在解除该空闲数据存储单元与目标数据处理对象的关联关系的情况下,建立目标数据处理对象与预设数据存储单元之间的关联关系,从而释放空闲数据存储单元对应的存储资源,获得待分配的数据存储单元,从而提高了计算机存储资源利用率,实现高效地利用计算机存储资源的目的。
上述为本实施例的一种数据存储单元处理装置的示意性方案。需要说明的是,该数据存储单元处理装置的技术方案与上述的数据存储单元处理方法的技术方案属于同一构思,数据存储单元处理装置的技术方案未详细描述的细节内容,均可以参见上述数据存储单元处理方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了内存页处理装置实施例,图6示出了本说明书一个实施例提供的一种数据内存页处理装置的结构示意图。如图6所示,该装置包括:
第一确定模块602,被配置为确定与进程关联的至少两个内存页,从所述至少两个内存页中确定空闲内存页,并确定与所述内存页关联的目标进程;
关联建立模块604,被配置为在解除所述目标进程与所述空闲内存页的关联关系的情况下,建立所述目标进程与预设内存页之间的关联关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致;
第二确定模块606,被配置为将所述空闲内存页确定为待分配的内存页。
本说明书提供的内存页处理装置,通过从进程关联的至少两个内存页中,确定空闲内存页,以及空闲内存页关联的目标进程,并在解除该空闲内存页与目标进程的关联关系的情况下,建立目标进程与预设内存页之间的关联关系,从而释放空闲内存页对应的内存资源,获得待分配的内存页,从而提高了计算机内存资源利用率,实现高效地利用计算机内存资源的目的。
上述为本实施例的一种内存页处理装置的示意性方案。需要说明的是,该内存页处理装置的技术方案与上述的内存页处理方法的技术方案属于同一构思,内存页处理装置的技术方案未详细描述的细节内容,均可以参见上述内存页处理方法的技术方案的描述。
本说明书一实施例还提供一种数据存储单元处理系统,包括进程以及数据存储单元或内存页;
所述进程在所述数据存储单元处理系统中执行时,实现所述数据存储单元处理方法或者所述内存页处理方法的步骤。
上述为本实施例的一种数据存储单元处理系统的示意性方案。需要说明的是,该数据存储单元处理系统的技术方案与上述数据存储单元处理方法以及内存页处理方法的技术方案属于同一构思,数据存储单元处理系统的技术方案未详细描述的细节内容,均可以参见上述数据存储单元处理方法以及内存页处理方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器720执行时实现上述数据存储单元处理方法以及内存页处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述数据存储单元处理方法以及内存页处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据存储单元处理方法以及内存页处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据存储单元处理方法以及内存页处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述数据存储单元处理方法以及内存页处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据存储单元处理方法以及内存页处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据存储单元处理方法以及内存页处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述数据存储单元处理方法以及内存页处理的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据存储单元处理方法以及内存页处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (13)

1.一种数据存储单元处理方法,包括:
确定与数据处理对象关联的至少两个数据存储单元,从所述至少两个数据存储单元中确定空闲数据存储单元,并确定与所述空闲数据存储单元关联的目标数据处理对象;
在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系,其中,所述预设数据存储单元为预设设置的、用于代替所述空闲数据存储单元与所述目标数据处理对象建立连接关系的数据存储单元,所述预设数据存储单元中的数据与所述空闲数据存储单元中的数据一致,所述目标数据处理对象与所述空闲数据存储单元的关联关系为所述目标数据处理对象与所述空闲数据存储单元之间的映射关系,当所述目标数据处理对象需要读取数据时,从所述预设数据存储单元中读取;当所述目标数据处理对象需要写入数据时,则不向所述预设数据存储单元中写入数据,而是重新为所述目标数据处理对象分配数据存储单元,并将数据写入至重新分配的数据存储单元;
将所述空闲数据存储单元确定为待分配的数据存储单元。
2.根据权利要求1所述的数据存储单元处理方法,所述从所述至少两个数据存储单元中确定空闲数据存储单元,包括:
确定所述至少两个数据存储单元的存储状态信息;
根据所述存储状态信息从所述至少两个数据存储单元中确定空闲数据存储单元。
3. 根据权利要求2所述的数据存储单元处理方法,所述确定所述至少两个数据存储单元的存储状态信息,包括:
监测所述数据处理对象针对所述至少两个数据存储单元中数据的处理操作信息,并根据所述处理操作信息确定所述至少两个数据存储单元的存储状态信息;或者
监测所述至少两个数据存储单元中数据的当前存储状态,并根据所述当前存储状态确定所述至少两个数据存储单元的存储状态信息。
4.根据权利要求2所述的数据存储单元处理方法,所述根据所述存储状态信息从所述至少两个数据存储单元中确定空闲数据存储单元,包括:
根据所述存储状态信息从所述至少两个数据存储单元中确定候选数据存储单元;
根据所述候选数据存储单元中数据的数据格式,从所述候选数据存储单元中确定空闲数据存储单元。
5.根据权利要求1所述的数据存储单元处理方法,所述在解除所述目标数据处理对象与所述空闲数据存储单元的关联关系的情况下,建立所述目标数据处理对象与预设数据存储单元之间的关联关系之前,还包括:
执行针对所述目标数据处理对象与所述空闲数据存储单元的关联关系解除操作,并监测所述空闲数据存储单元中数据的数据格式;
在确定所述关联关系解除操作执行完成、且确定所述数据格式满足预设条件的情况下,确定解除所述目标数据处理对象与所述空闲数据存储单元的关联关系。
6. 根据权利要求5所述的数据存储单元处理方法,所述确定所述数据格式满足预设条件,包括:
在确定所述数据格式与预设数据格式一致的情况下,确定所述数据格式满足预设条件;或者
根据所述数据格式确定所述空闲数据存储单元中的数据没有变更的情况下,确定所述数据格式满足预设条件。
7.根据权利要求5所述的数据存储单元处理方法,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,所述执行针对所述目标数据处理对象与所述空闲数据存储单元的关联关系解除操作,包括:
确定目标进程和空闲内存页之间的页表,并清除所述页表,以确定所述目标进程与所述空闲内存页的关联关系解除。
8.根据权利要求1所述的数据存储单元处理方法,所述数据存储单元为内存页,所述数据处理对象为进程;
相应地,所述建立所述目标数据处理对象与预设数据存储单元之间的关联关系,包括:
确定目标进程与空闲内存页之间的虚拟内存空间,并建立所述虚拟内存空间与预设内存页之间的映射关系,其中,所述预设内存页中的数据与所述空闲内存页中的数据一致。
9.根据权利要求1所述的数据存储单元处理方法,所述将所述空闲数据存储单元确定为待分配的数据存储单元之后,还包括:
确定所述待分配的数据存储单元分配至待执行的数据处理对象。
10.一种内存页处理方法,包括:
确定与进程关联的至少两个内存页,从所述至少两个内存页中确定空闲内存页,并确定与所述内存页关联的目标进程;
在解除所述目标进程与所述空闲内存页的关联关系的情况下,建立所述目标进程与预设内存页之间的关联关系,其中,所述预设内存页为预设设置的、用于代替所述空闲内存页与所述目标进程建立连接关系的内存页,所述预设内存页中的数据与所述空闲内存页中的数据一致,所述目标进程与所述空闲内存页的关联关系为所述目标进程与所述空闲内存页之间的映射关系,当所述目标进程需要读取数据时,从所述预设内存页中读取;当所述目标进程需要写入数据时,则不向所述预设内存页中写入数据,而是重新为所述目标进程分配内存页,并将数据写入至重新分配的内存页;
将所述空闲内存页确定为待分配的内存页。
11.一种数据存储单元处理系统,包括进程以及数据存储单元或内存页;
所述进程在所述数据存储单元处理系统中执行时,实现权利要求1至9任意一项所述数据存储单元处理方法或者权利要求10所述内存页处理方法的步骤。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据存储单元处理方法以及权利要求10所述的内存页处理方法的步骤。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据存储单元处理方法以及权利要求10所述的内存页处理方法的步骤。
CN202310372255.XA 2023-04-10 2023-04-10 数据存储单元处理方法 Active CN116107925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310372255.XA CN116107925B (zh) 2023-04-10 2023-04-10 数据存储单元处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310372255.XA CN116107925B (zh) 2023-04-10 2023-04-10 数据存储单元处理方法

Publications (2)

Publication Number Publication Date
CN116107925A CN116107925A (zh) 2023-05-12
CN116107925B true CN116107925B (zh) 2023-09-26

Family

ID=86256449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310372255.XA Active CN116107925B (zh) 2023-04-10 2023-04-10 数据存储单元处理方法

Country Status (1)

Country Link
CN (1) CN116107925B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520011A (zh) * 2023-11-09 2024-02-06 中国三峡建工(集团)有限公司 一种实时数据内存的共享管理方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799534A (zh) * 2012-07-18 2012-11-28 上海宝存信息科技有限公司 基于固态存储介质的存储系统及方法、冷热数据识别方法
CN106970881A (zh) * 2017-03-10 2017-07-21 浙江大学 一基于大页的冷热页追踪及压缩回收方法
CN109992402A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN110908923A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 内存回收方法及装置
CN111078586A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置、存储介质及电子设备
CN112052089A (zh) * 2020-09-01 2020-12-08 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN113778662A (zh) * 2021-07-28 2021-12-10 荣耀终端有限公司 内存回收方法及装置
CN114995993A (zh) * 2022-04-22 2022-09-02 阿里巴巴(中国)有限公司 内存回收方法以及装置
CN115712500A (zh) * 2022-11-10 2023-02-24 阿里云计算有限公司 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN115756838A (zh) * 2022-11-10 2023-03-07 阿里云计算有限公司 内存释放、内存恢复方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529883B (zh) * 2016-11-23 2019-05-14 北京小度信息科技有限公司 分配数据对象的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799534A (zh) * 2012-07-18 2012-11-28 上海宝存信息科技有限公司 基于固态存储介质的存储系统及方法、冷热数据识别方法
CN106970881A (zh) * 2017-03-10 2017-07-21 浙江大学 一基于大页的冷热页追踪及压缩回收方法
CN109992402A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN110908923A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 内存回收方法及装置
CN111078586A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置、存储介质及电子设备
CN112052089A (zh) * 2020-09-01 2020-12-08 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN113778662A (zh) * 2021-07-28 2021-12-10 荣耀终端有限公司 内存回收方法及装置
CN114995993A (zh) * 2022-04-22 2022-09-02 阿里巴巴(中国)有限公司 内存回收方法以及装置
CN115712500A (zh) * 2022-11-10 2023-02-24 阿里云计算有限公司 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN115756838A (zh) * 2022-11-10 2023-03-07 阿里云计算有限公司 内存释放、内存恢复方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hanli Xiong.Flexible and recyclable bio-based transient resistive memory enabled by self-healing polyimine membrane.Journal of Colloid and Interface Science.2022,第608卷1126-1134. *
王家亮 ; 赵海 ; 潘荣 ; 蔡鹏华 ; .AVR单片机实时系统内存分配算法的研究.东北大学学报(自然科学版).2011,(第05期),全文. *

Also Published As

Publication number Publication date
CN116107925A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
US10552337B2 (en) Memory management and device
US9087021B2 (en) Peer-to-peer transcendent memory
US7472249B2 (en) Kernel memory free algorithm
US20180173643A1 (en) File Data Access Method and Computer System
US7971026B2 (en) Information processing apparatus and access control method
US11593186B2 (en) Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory
WO2017054610A1 (zh) 计算机、服务质量控制方法及装置
CN116107925B (zh) 数据存储单元处理方法
CN108139966B (zh) 管理转址旁路缓存的方法和多核处理器
US11550713B1 (en) Garbage collection in distributed systems using life cycled storage roots
CN107341114B (zh) 一种目录管理的方法、节点控制器和系统
CN113778662A (zh) 内存回收方法及装置
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
WO2023016414A1 (zh) 凭据的轮转方法、计算设备及存储介质
US9658775B2 (en) Adjusting page sharing scan rates based on estimation of page sharing opportunities within large pages
US20150242121A1 (en) Per-memory group swap device
CN114995993A (zh) 内存回收方法以及装置
CN113296940B (zh) 数据处理方法及装置
EP4369191A1 (en) Memory scanning method and apparatus
WO2023241528A1 (zh) 数据处理方法以及装置
EP4375836A1 (en) Memory paging method and system, and storage medium
CN116204309A (zh) 内存交换方法、装置、计算机设备及存储介质
CN113946542A (zh) 数据处理方法以及装置
CN115794368A (zh) 业务系统、内存管理方法及装置

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
GR01 Patent grant
GR01 Patent grant