CN115509679A - 冷热信息的更新方法、存储介质及程序产品 - Google Patents
冷热信息的更新方法、存储介质及程序产品 Download PDFInfo
- Publication number
- CN115509679A CN115509679A CN202210510823.3A CN202210510823A CN115509679A CN 115509679 A CN115509679 A CN 115509679A CN 202210510823 A CN202210510823 A CN 202210510823A CN 115509679 A CN115509679 A CN 115509679A
- Authority
- CN
- China
- Prior art keywords
- cold
- hot
- reserved memory
- memory
- lock
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种冷热信息的更新方法、存储介质及程序产品,冷热信息的更新方法,包括:确定第一进程的内存操作针对的预留内存的物理地址,其中,内存操作的执行会导致预留内存的使用情况的变化,并导致冷热信息集合发生变更;根据预留内存的物理地址,确定预留内存对应的冷热节点,冷热节点中包括冷热信息集合,冷热信息集合用于记录预留内存的冷热信息;若冷热节点的冷热操作锁被第二进程持有,则根据第一进程的内存操作对应的冷热信息更新操作,生成冷热信息更新操作对应的操作缓存对象,并将操作缓存对象无锁入队至缓存队列;当第二进程释放冷热节点的冷热操作锁后,从缓存队列无锁出队操作缓存对象,并根据操作缓存对象执行对应的冷热信息更新操作。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种冷热信息的更新方法、存储介质及程序产品。
背景技术
在虚拟化场景下的宿主机内存分配架构中,宿主机的大部分内存被预留以待分配给虚拟机使用。这部分被预留的内存对于宿主机内核是不可用的,宿主机的内核也无法直接确定这部分内存的访问情况。
为了获取预留内存的访问冷热等情况,需要对预留内存进行周期性的访问情况扫描。
为此,需要通过持有冷热操作锁锁定预留内存是否属于需要扫描的内存范围,并进行扫描。然而,预留内存时不断被虚拟机使用的,即预留内存的冷热信息是不断更新的,更新过程同样需要持有冷热操作锁来保护冷热集合数据,若需要扫描的内存范围较大,会导致长期持有冷热操作锁。如果同时出现其他对虚拟机的操作指令,这些执行需要执行更新冷热操作集合的话,就会阻塞这类操作,而这类操作往往是需要快速响应的,否则会出现宿主机操作被卡住等假死现象。
有鉴于此,现有技术亟需解决的技术问题是如何提供另一种冷热信息的更新方案。
发明内容
有鉴于此,本申请实施例提供一种冷热信息的更新方法,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种冷热信息的更新方法,包括:确定第一进程的内存操作针对的预留内存的物理地址,其中,所述内存操作的执行会导致所述预留内存的使用情况的变化,并导致冷热信息集合发生变更,所述冷热信息集合用于记录预留内存的冷热信息;根据所述预留内存的物理地址,确定所述预留内存对应的冷热节点,所述冷热节点中包括冷热信息集合;若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象,并将所述操作缓存对象无锁入队至缓存队列;当所述第二进程释放所述冷热节点的冷热操作锁后,从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作。
根据本申请实施例的第二方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
根据本申请实施例的第三方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如上所述的方法对应的操作。
根据本申请实施例提供的方案,通过确定第一进程的内存操作针对的预留内存的物理地址,其中,所述内存操作的执行会导致所述预留内存的使用情况的变化,并导致冷热信息集合发生变更,所述冷热信息集合用于记录预留内存的冷热信息;并根据所述预留内存的物理地址,确定所述预留内存对应的冷热节点,所述冷热节点中包括冷热信息集合;若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象,并将所述操作缓存对象无锁入队至缓存队列;由此,可以在第一进程不持有冷热节点的冷热操作锁时,根据冷热信息更新操作生成操作缓存对象,当所述第二进程释放所述冷热节点的冷热操作锁后,从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作,以实现冷热信息的异步更新,由此,通过增加缓存队列避免了第一进程和第二进程的锁竞争,并通过无锁入队和无锁出队,保证缓存队列不会引入新的锁竞争。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种宿主机的结构示意图;
图2为本申请实施例提供的一种冷热信息的更新方法的流程示意图;
图3为本申请实施例提供的一种宿主机的结构示意图;
图4为本申请实施例提供的一种冷热信息的更新方法的流程示意图;
图5为根据本申请实施例的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
为了更加详细地说明本实施例提供的方案,下面先对本申请中的使用场景进行示例性说明。
图1为宿主机的结构示意图,如图所示,一台宿主机上可以运行多台虚拟机VM1、VM2、…VMn,虚拟机中可以运行有多个应用。
宿主机的内存可以按照使用者的不同分为两类,一类是宿主机自身使用的内存,一类是供虚拟机使用的预留内存。为了保证虚拟机能够正常使用,宿主机中一般会从内存中划分出预设大小的预留内存,预留内存仅供虚拟机使用,不允许宿主机自身使用。当在宿主机中新创建一个虚拟机时,可以从预留内存中划分出部分内存供新创建的虚拟机使用。
在宿主机上运行虚拟机的过程中,需要不断地为新的虚拟机进程分配预留内存、释放或者更新虚拟机进程对应的预留内存,为此,需要宿主机及时了解预留内存的冷热信息。
然而,宿主机不能使用预留内存,因此,申请人提供了一种冷热内存管理结构体,内存冷热管理结构体中可以包括多个节点,用于记录预留内存的冷热信息。然而,若要及时了解预留内存的冷热信息,则需要对预留内存进行扫描,并更新至冷热内存管理结构体中。
但是,为了保证准确扫描和更新,扫描过程需要持有冷热操作锁;而为虚拟机分配或释放预留内存的过程中也需要及时将预留内存的冷热信息同步更新至冷热内存管理结构体,即也需要持有冷热操作锁。这会导致扫描过程和为虚拟机分配或释放预留内存的过程中发生锁冲突,若扫描过程持有冷热操作锁的时间较长,可能会导致为虚拟机分配或释放预留内存的任务长时间阻塞,这些任务发生阻塞,会直接影响到用户体感,且可能会导致宿主机假死。
为此,本申请实施例提供了一种冷热信息的更新方法,可以在尽量不产生锁冲突的前提下,实现冷热信息的更新。
图2为本申请实施例提供的一种冷热信息的更新方法的流程示意图,本实施例提供的步骤可以由上图中的宿主机执行,如图所示,其包括:
S201、确定第一进程的内存操作针对的预留内存的物理地址。
其中,所述内存操作的执行会导致所述预留内存的使用情况的变化,并导致冷热信息集合发生变更,所述冷热信息集合用于记录预留内存的冷热信息。
预留内存为可以分配至虚拟机的内存,虚拟机为通过虚拟化技术部署在宿主机上的服务或进程。
本实施例中,可以对宿主机中的物理内存进行划分,得到两类内存,一部分是宿主机使用的内存,另一部分是供虚拟机使用的预留内存。宿主机可以通过确定自身可以使用的内存地址,将除自身可使用的内存之外的确定为预留内存。
本实施例中,预留内存的冷热情况指示预留内存被访问的情况,预留内存中被写入数据可以理解为预留内存的热度较高,反之则较低。一般情况下宿主机以一定的粒度分配预留内存,例如将预留内存按照2M的粒度进行切片,并按照2M的倍数将预留内存分配给虚拟机,则本实施例中,也可以按照同样的粒度确定冷热信息。
第一进程的内存操作,具体可以包括内存释放操作、内存分配请求等,内存操作的执行会导致预留内存的使用情况发生变化,例如某些预留内存被释放、即不对应有虚拟机进程,或者,部分之前未被分配的预留内存被分配给了虚拟机进程,预留内存的使用情况发生变化,会进一步导致用于记录预留内存冷热信息的冷热信息集合发生变化。
S202、根据所述预留内存的物理地址,确定所述预留内存对应的冷热节点,所述冷热节点中包括冷热信息集合。
具体地,参见图3,示出了一种宿主机的结构示意图。宿主机中可以部署有多个虚拟机VM1、VM2…,并且宿主机内核kernel可以维护有一个冷热内存管理结构体,包括用于确定已被分配至虚拟机的预留内存Reserved Memory的冷热老化信息,冷热内存管理结构体具体可以包括多个冷热节点node以及总的老化功能的各种控制字段。
老化功能的各种控制字段可以例如,控制整个冷热扫描功能是否开启的字段,统计信息,反复分配释放的常用结构体的缓存池;每个节点下可以包括多个冷热老化数据。每次更新node中的数据后,可以更新老化功能的各种控制字段。
一个冷热节点node可以对应一个或者多个虚拟机,一个虚拟机可以对应一个或者多个冷热节点node,本实施例对此不进行限定。一般情况下,程序会持有冷热节点的冷热操作锁,若内存操作针对预留内存的物理地址属于多个冷热节点,则针对多个冷热节点,均执行本实施例提供的方案。
参见图3,以节点node0、节点node1为例,每个节点下可以包括多个冷热信息集合,冷热信息集合可以分为inactive(不活动,即冷)、active(活动,即热)、paused (暂时不参与扫描)或者pinned(永久不参与扫描)四类,对应内存的四种状态,当然,本实施例中仅以这四种状态进行示例性说明,并不作为本申请的限定。
每个冷热信息集合中可以包括多个冷热项item,多个冷热项可以按照时间排序,使得通过时间沉淀后的冷热信息集合可以表征内存的老化情况。
每个冷热项item中可以包括被分配的预留内存的物理地址idx和被分配的预留内存的大小size,其中还包括用于指示下一个冷热项的next以及被分配的预留内存所属的虚拟机进程pid。
S203、若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象,并将所述操作缓存对象无锁入队至缓存队列。
本实施例中,第二进程对用户体感的影响可以较少,第一进程可以对用户体感的影响较高。具体地,所述第一进程为前台进程,所述第二进程为后台进程。
需要说明的是,第一进程的数量可以为多个,即可能存在多个虚拟机进程同时执行内存操作,因此,可能同时存在多个需要入队至缓存队列的操作缓存对象。为了避免引入的缓存队列导致新的锁竞争出现,本实施例中缓存队列采用无锁入队和无锁出队的结构。
本实施例中,在步骤S203之前,所述方法还可以包括执行第一进程的内存操作。
若所述冷热节点的冷热操作锁被第二进程持有,则表示第一操作并未持有冷热操作锁,此时可以确定并记录内存操作对应的冷热信息更新操作,但不执行内存操作对应的冷热信息更新操作。记录的内存操作对应的冷热信息更新操作可以用于生成操作缓存对象,并可以将操作缓存对象无锁入队至缓存队列。具体无锁入队的方法可参考相关技术,在此不再赘述。
另外,若第一进程可以顺利持有冷热操作锁,则可以直接执行内存操作对应的冷热信息更新操作。
S204、当所述第二进程释放所述冷热节点的冷热操作锁后,从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作。
本实施例中,无锁出队的方法可参考相关技术,在此不再赘述。
在操作缓存对象从缓存队列中无锁出队后,可以根据操作缓存对象中记录的冷热信息更新操作的相关内容,通过第一进程或者第二进程或者第一进程、第二进程之外的第三进程继续执行冷热信息更新操作,具体执行的方法可参考相关技术,在此不再赘述。
本实施例提供的方案,通过确定第一进程的内存操作针对的预留内存的物理地址,其中,所述内存操作的执行会导致所述预留内存的冷热情况发生变更;并根据所述预留内存的物理地址,确定所述预留内存对应的冷热节点,所述冷热节点中包括冷热信息集合,所述冷热信息集合用于记录预留内存的冷热信息;若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象,并将所述操作缓存对象无锁入队至缓存队列;由此,可以在第一进程不持有冷热节点的冷热操作锁时,根据冷热信息更新操作生成操作缓存对象,当所述第二进程释放所述冷热节点的冷热操作锁后,从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作,以实现冷热信息的异步更新,由此,通过增加缓存队列避免了第一进程和第二进程的锁竞争,并通过无锁入队和无锁出队,保证缓存队列不会引入新的锁竞争。
具体地,参见图4,示出了本实施例提供的一种冷热信息更新方法的流程示意图,冷热信息更新方法由并行的第一进程和第二进程执行,第一进程用于执行内存操作,第二进程用于进行冷热信息扫描及更新,第一进程可以有多个,本实施例对此不进行限定。
参见图4,第一进程执行的操作包括:
S401、确定内存操作针对的预留内存;
本实施例中,可以先根据内存操作,确定其针对的指定大小的预留内存,指定大小的预留内存可以是一段预留内存,也可以是多段不连续的预留内存;预留内存可以对应一个冷热节点或者多个冷热节点。
可选地,本申请任意实施例中,若第一进程的内存操作为预留内存分配操作;则上述步骤S401具体可以为执行内存分配操作,以确定为虚拟机分配的指定大小的预留内存。若第一进程的内存操作为预留内存释放操作;则上述步骤S401具体可以为执行预留内存释放操作,以确定虚拟机释放的指定大小的预留内存。若第一进程的内存操作为虚拟机热更新操作;则上述步骤S401具体可以为执行虚拟机热更新,以确定需要更新虚拟机进程的预留内存。
S402、确定预留内存对应的冷热节点。
S403、请求冷热节点的冷热操作锁。
如果未获得操作锁,则表明该冷热节点正在进行冷热扫描,或者其他执行内存操作的进程正持有冷热操作锁,继续步骤S404;否则,当前该节点没有在进行互斥操作,则继续执行第一进程的内存操作,并在执行完成后释放冷热操作锁,以完成当前流程。
若缓存队列中存在操作缓存对象,则当第一进程释放冷热操作锁后,第二进程可以请求到冷热操作锁,并可以继续执行从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作的步骤。
若步骤S402中的预留内存对应有多个冷热节点,则本步骤中,继续执行第一进程的内存操作时,可以确定内存操作针对的预留内存中与当前的冷热节点对应的一部分预留内存。
S404、若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象。
具体地,操作缓存对象可以包括缓存操作类型、版本号、以及相应记录操作信息的其他字段。当生成操作缓存对象时,考虑到缓存操作可能会经常出现,为了减少分配和释放的开销,新增一个操作缓存对象的资源池;每次新增一个操作缓存对象时,先从资源池分配,如果资源池不够,再从宿主机的系统内存分配;并将响应的信息填入对应的操作缓存对象中;之后进行无锁入对,将操作缓存对象加入到缓存操作队列。
S405、将所述操作缓存对象无锁入队至缓存队列。
至此,第一进程的操作完成。
参见图4,第二进程执行的操作包括:
S406、获得一个需要进行冷热信息扫描的冷热节点的冷热操作锁。
S407、扫描冷热节点对应的预留内存的冷热信息,并根据扫描结果更新冷热信息集合。
需要说明的是,若第二进程用于扫描所述冷热节点的冷热信息集合对应的页表,所述方法还包括:若所述第二进程扫描到所述第二预留内存对应的页表,则退出扫描操作并释放所述冷热节点的冷热操作锁,以及执行从所述缓存队列无锁出队操作缓存对象,并通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作的步骤。
需要说明的是,若预留内存释放操作对应的冷热信息更新操作并未执行,即释放信息还没更新到冷热信息集合中,后续第二进程执行扫描操作时,若扫描到释放的页表,会出现查询失败的情况,并可以自动退出扫描,进入执行从所述缓存队列无锁出队操作缓存对象,并通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作的步骤,以及时更新内存释放操作对应的冷热信息。
S408、判断本节点扫描是否结束。
未结束继续步骤S407,若结束则执行步骤S409;
S409、将操作缓存对象从缓存队列中无锁出队,并执行对应的内存操作。
将缓存队列中的操作缓存对象对应的内存操作执行完成后,继续执行步骤S410。
图中的虚线表示第一进程和第二进程通过缓存队列关联。
可选地,本申请任意实施例中,若第一进程的内存操作为预留内存分配操作;则通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作,包括:确定执行所述预留内存分配操作而被分配的预留内存中,属于被释放冷热操作锁的冷热节点的第一预留内存;扫描确定的所述第一预留内存的冷热信息,并更新所述冷热信息至所述冷热节点的冷热信息集合中。
可选地,本申请任意实施例中,若第一进程的内存操作为预留内存释放操作;则通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作,包括:确定执行所述预留内存释放操而被释放的预留内存中,属于被释放冷热操作锁的冷热节点的第二预留内存;将所述冷热节点的冷热信息集合中与所述第二预留内存对应的冷热信息删除。
可选地,本申请任意实施例中,若第一进程的内存操作为虚拟机热更新操作;则所述通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作,包括:确定被更新的预留内存中,属于被更新冷热操作锁的冷热节点的第三预留内存;更新所述冷热节点的冷热信息集合中与所述第三预留内存对应的冷热信息。
可选地,本申请任意实施例中,冷热信息集合中包括多个冷热项,所述冷热项中包括预留内存的物理地址、预留内存的大小、预留内存所属的虚拟机进程,所述更新所述冷热节点的冷热信息集合中与所述第三预留内存对应的冷热信息,包括:将所述冷热信息集合中对应于热升级过程的冷热项中的虚拟机进程更新。当然,在本申请的其他实现方式中,冷热信息中也可以不存储有虚拟机进程,则无需对冷热信息中的虚拟机进程进行更新。
可选地,本申请任意实施例中,所述第二进程用于扫描所述冷热节点的冷热信息集合对应的页表,所述方法还包括:在所述第二进程持有所述冷热节点的冷热操作锁前,执行所述从所述缓存队列无锁出队操作缓存对象,并通过所述第一进程根据所述操作缓存对象执行对应的冷热信息更新操作的步骤。由此,可以在通过第二进程扫描前,确保之前因为锁竞争遗留的操作先被执行掉。
S410、判断所有节点的热冷信息更新是否结束,未结束继续步骤S406;否则,则完成当前流程。
可选地,本申请任意实施例中,所述缓存队列与所述冷热节点一一对应。由此,在扫描完一个冷热节点,释放了该节点的冷热操作锁之后,即可执行该节点对应的缓存队列进行无锁出队,以执行对应的冷热信息更新操作,从而保证扫描期间出现的冷热信息操作都被及时更新,且不会与其他冷热节点产生混淆。
至此,完成所有热冷信息的同步或异步更新。
本实施例的冷热信息的更新方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。
参照图5,示出了本申请实施例提供的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它电子设备或服务器进行通信。
处理器502,用于执行程序510,具体可以执行上述冷热信息的更新方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510中各步骤的具体实现可以参见上述冷热信息的更新方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一冷热信息的更新方法对应的操作。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的冷热信息的更新方法。此外,当通用计算机访问用于实现在此示出的冷热信息的更新方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的冷热信息的更新方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (11)
1.一种冷热信息的更新方法,包括:
确定第一进程的内存操作针对的预留内存的物理地址,其中,所述内存操作的执行会导致所述预留内存使用情况的变化,并导致冷热信息集合发生变更,所述冷热信息集合用于记录预留内存的冷热信息;
根据所述预留内存的物理地址,确定所述预留内存对应的冷热节点,所述冷热节点中包括冷热信息集合;
若所述冷热节点的冷热操作锁被第二进程持有,则根据所述第一进程的内存操作对应的冷热信息更新操作,生成所述冷热信息更新操作对应的操作缓存对象,并将所述操作缓存对象无锁入队至缓存队列;
当所述第二进程释放所述冷热节点的冷热操作锁后,从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作。
2.根据权利要求1所述的方法,其中,所述第一进程的内存操作包括:预留内存分配操作;
所述根据所述操作缓存对象执行对应的冷热信息更新操作,包括:
确定执行所述预留内存分配操作而被分配的预留内存中,属于被释放冷热操作锁的冷热节点的第一预留内存;
扫描确定的所述第一预留内存的冷热信息,并更新所述冷热信息至所述冷热节点的冷热信息集合中。
3.根据权利要求1所述的方法,其中,所述第一进程的内存操作包括:预留内存释放操作;
所述根据所述操作缓存对象执行对应的冷热信息更新操作,包括:
确定执行所述预留内存释放操而被释放的预留内存中,属于被释放冷热操作锁的冷热节点的第二预留内存;
将所述冷热节点的冷热信息集合中与所述第二预留内存对应的冷热信息删除。
4.根据权利要求3所述的方法,其中,所述第二进程用于扫描所述冷热节点的冷热信息集合对应的页表,所述方法还包括:
若所述第二进程扫描到所述第二预留内存对应的页表,则退出扫描操作并释放所述冷热节点的冷热操作锁,以及执行从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作的步骤。
5.根据权利要求1所述的方法,其中,所述第一进程的内存操作包括:虚拟机热更新操作;
所述根据所述操作缓存对象执行对应的冷热信息更新操作,包括:
确定被更新的预留内存中,属于被更新冷热操作锁的冷热节点的第三预留内存;
更新所述冷热节点的冷热信息集合中与所述第三预留内存对应的冷热信息。
6.根据权利要求5所述的方法,其中,冷热信息集合中包括多个冷热项,所述冷热项中包括预留内存的物理地址、预留内存的大小、预留内存所属的虚拟机进程,所述更新所述冷热节点的冷热信息集合中与所述第三预留内存对应的冷热信息,包括:
将所述冷热信息集合中对应于热升级过程的冷热项中的虚拟机进程更新。
7.根据权利要求1所述的方法,其中,所述第一进程为前台进程,所述第二进程为后台进程。
8.根据权利要求7所述的方法,其中,所述第二进程用于扫描所述冷热节点的冷热信息集合对应的页表,所述方法还包括:
在所述第二进程持有所述冷热节点的冷热操作锁前,执行所述从所述缓存队列无锁出队操作缓存对象,并根据所述操作缓存对象执行对应的冷热信息更新操作的步骤。
9.根据权利要求1所述的方法,其中,所述缓存队列与所述冷热节点一一对应。
10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-9中任一所述方法。
11.一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-9中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210510823.3A CN115509679A (zh) | 2022-05-11 | 2022-05-11 | 冷热信息的更新方法、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210510823.3A CN115509679A (zh) | 2022-05-11 | 2022-05-11 | 冷热信息的更新方法、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509679A true CN115509679A (zh) | 2022-12-23 |
Family
ID=84500895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210510823.3A Pending CN115509679A (zh) | 2022-05-11 | 2022-05-11 | 冷热信息的更新方法、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509679A (zh) |
-
2022
- 2022-05-11 CN CN202210510823.3A patent/CN115509679A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984264B (zh) | 虚拟gpu的实现方法、装置及系统 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
US9898338B2 (en) | Network computer system and method for dynamically changing execution sequence of application programs | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN109565476B (zh) | 使用共享全局存储器储备进行队列保护 | |
EP3380937A1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
US20130246714A1 (en) | System and method for supporting buffer allocation in a shared memory queue | |
US20120110293A1 (en) | Method and system for managing virtual machine storage space and physical host | |
KR102594657B1 (ko) | 비순차적 리소스 할당을 구현하는 방법 및 장치 | |
CN111258932A (zh) | 加速ufs协议处理的方法与存储控制器 | |
CN112506821A (zh) | 一种系统总线接口请求仲裁方法及相关组件 | |
CN115421787A (zh) | 指令执行方法、装置、设备、系统、程序产品及介质 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN109819674B (zh) | 计算机存储介质、嵌入式调度方法及系统 | |
US20180373573A1 (en) | Lock manager | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN110489356B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN115509679A (zh) | 冷热信息的更新方法、存储介质及程序产品 | |
US9405470B2 (en) | Data processing system and data processing method | |
US11743200B2 (en) | Techniques for improving resource utilization in a microservices architecture via priority queues | |
JP2009080820A (ja) | タスク切換装置、方法及びプログラム | |
CN113010453A (zh) | 一种内存管理的方法、系统、设备及可读存储介质 | |
CN115951844B (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 |