CN114741272A - Numa访存的统计方法及装置 - Google Patents
Numa访存的统计方法及装置 Download PDFInfo
- Publication number
- CN114741272A CN114741272A CN202210469533.9A CN202210469533A CN114741272A CN 114741272 A CN114741272 A CN 114741272A CN 202210469533 A CN202210469533 A CN 202210469533A CN 114741272 A CN114741272 A CN 114741272A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- region
- monitored process
- missing
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书一个或多个实施例提供一种NUMA访存的统计方法及装置,包括:将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;针对每个区域,选择其中至少一个页进行缺页处理;若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;根据所述归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
Description
技术领域
本说明书一个或多个实施例涉及计算机内存访问领域,尤其涉及一种NUMA(Non-Uniform Memory Access,非统一内存访问)访存的统计方法及装置。
背景技术
在以NUMA架构实现的计算机内存系统中,对于任一处理器,其访问内存需要耗费的时间取决于该内存相对于该处理器所处的位置,因此,需要对内存的访问情况进行统计,用以优化内存的设置,从而提高内存访问的效率。现有的NUMA访存的统计大都依赖于PMU(Performance Monitor Unit,性能监视单元),PMU是一种基于寄存器的硬件设备,因此,对于不支持PMU的系统来说,将无法通过PMU实现对NUMA访存的统计。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种NUMA访存的统计方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种NUMA访存的统计方法,所述方法包括:
将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;
针对每个区域,选择其中至少一个页进行缺页处理;
若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;
根据所述归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
根据本说明书一个或多个实施例的第二方面,提出了一种NUMA访存的统计装置,所述装置包括:
区域确定单元,用于将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;
缺页处理单元,用于针对每个区域,选择其中至少一个页进行缺页处理;
内存归属信息确定单元,用于若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;
统计单元,用于根据所述归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
根据本说明书一个或多个实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法的步骤。
根据本说明书一个或多个实施例的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的步骤。
在本说明书所提供的技术方案中,通过将被监控进程对应的虚拟内存空间(Virtual Memory Area,VMA)确定为至少一个区域(Region),并在每个区域中设置至少一个可以触发缺页异常事件的页,利用缺页异常事件处理,统计触发该缺页异常事件的页的内存归属信息,最终获取被监控进程对本地内存和远程内存的访问情况。上述对NUMA访存的统计方法无需依赖任何硬件设备,可以在各个不同平台进行使用,且在统计过程中,通过区域的确定,将统计的精确度由进程级别提高到了区域级别。
附图说明
图1是本说明书一示例性实施例提供的一种NUMA访存的统计设备的架构示意图;
图2是本说明书一示例性实施例提供的一种NUMA内存架构的示意图;
图3是本说明书一示例性实施例提供的一种NUMA访存的统计方法的流程示意图;
图4是本说明书一示例性实施例提供的一种电子设备的结构示意图;
图5是本说明书一示例性实施例提供的一种NUMA访存的统计装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是本说明书示出的一种NUMA访存的统计设备的架构示意图。如图1所示,可以包括主机11、以及部署于主机上的处理器12及其对应的内存13、处理器14及其对应的内存15、网络16和电子设备17。
主机11是一独立主机或主机集群承载的虚拟服务器,处理器12及其对应的内存13以及处理器14及其对应的内存15以NUMA架构部署于主机11中。在运行过程中,处理器12或14上执行的各个进程可以访问其对应的本地内存,也可以访问其他处理器上的内存。主机11上可以配置有NUMA访存统计装置,该装置可以采用软件和/或硬件的方式实现,对处理器执行的某一被监控进程的NUMA内存访问情况进行统计。
电子设备17是指用户可以使用的一种类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:手机、平板设备、笔记本电脑、掌上电脑(PDAs,PersonalDigital Assistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。在运行过程中,电子设备17可以供用户向主机11下发针对任一进程的NUMA访存统计请求,以使主机11开启对该进程的NUMA访存的统计。
而对于电子设备17与主机11之间进行交互的网络16,可以包括多种类型的有线或无线网络。在一实施例中,该网络16可以包括公共交换电话网络(Public SwitchedTelephone Network,PSTN)和因特网。
NUMA架构是针对UMA(Uniform Memory Access,一致性内存访问)架构提出的一种多核下的内存架构方式。在UMA中是通过总线连接所有处理器以及内存的,因此在UMA中,对于任一处理器,其对所有内存的访问都是一致的,不必考虑不同内存地址之间的差异。而在如图2所示的NUMA架构下,对任一的处理器,访问本地(Local)内存和远程(Remote)内存的访问时间将产生明显的差异。访问本地内存需要的时间明显少于访问远程内存的时间。
例如,如图2所示,主机中包括8个CPU,相当于该主机具有8个内核。其中,8个CPU分别连接在两个节点(Node)上。节点21中部署有CPU 211、CPU 212、CPU 213以及CPU 214,在节点21内部,任一CPU可以通过IMC Bus进行通信并访问属于节点21本地的内存215。在节点22中部署有CPU 221、CPU 222、CPU 223以及CPU 224,在节点22内部,任一CPU可以通过节点内部总线进行通信并访问属于节点22本地的内存225。其中,内存215或者225可以由若干内存条构成。而处于不同节点的CPU之间通过连接连各节点的总线访问位于其他节点的内存。例如,处于节点21中的CPU 211若想访问处于节点22中的内存225,则需要通过连接两个节点的总线进行访问。通常情况下,节点内部总线为IMC Bus总线,而连接两个节点的总线为QIC(Quick Path Interconnect,快速通道互联)总线。
将内存相对于CPU所处的位置区分为本地内存和远程内存,本地内存就是指与该CPU处于相同节点上的内存,而远程内存是指相对于该CPU,处于其他节点上的内存。例如,在如图2所示的NUMA架构中,对于处于节点21中的CPU 211来说,同样处于节点21中的内存215即为其本地内存,而处于节点22中的内存225即为其远程内存。在实际应用中,CPU访问本地内存和远程内存的时间上有很大差异,因此,统计一个CPU上执行的进程对内存的访问情况对于内存的优化十分重要。因此,本说明书提出一种NUMA节点的访存统计方法。在对上述访问情况进行统计的同时,不依赖于硬件设备,且可以进行区域级别细粒度的NUMA访存的统计。
下面结合图3对本说明书提供的NUMA访存统计的方法进行介绍。如图3所示为本说明书一示例性实施例提供的一种NUMA访存统计的方法的流程示意图。该方法主要包括以下步骤:
S301,将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页(Page)。
虚拟内存是计算机系统内存管理的一种技术,将多个相区隔的物理内存虚拟为一个连续完整的地址空间,该地址空间就称为虚拟内存空间。虚拟内存技术使得应用程序认为它拥有连续的可用的内存,而实际上虚拟内存空间中各个虚拟地址对应的物理地址可能处于不同的内存中,在需要时进行数据交换。目前,主流操作系统都使用了虚拟内存,如Windows、Linux等。虚拟内存空间的最小单元为一页,虚拟内存空间中任一虚拟地址与物理地址一一对应,各个物理地址构成虚拟内存空间对应的物理地址空间,且虚拟空间中任意一页对应物理地址空间中的一页帧(Page Frame)。上述对应关系被以页表项的形式存储在系统内存的页表区。
在确定区域时,可以仅将一个虚拟内存空间中的一部分作为被统计的对象,也可以将整个虚拟内存空间作为被统计的对象。例如,被监控进程对应的虚拟内存空间中,随机确定出虚拟地址段,将虚拟内存空间按照上述随机确定的虚拟地址段进行分配,将随机确定的任一地址段内的虚拟地址作为一个区域,在虚拟地址空间中确定至少一个区域作为被统计的对象,统计上述区域内NUMA访存的情况。
或者,也可以对整个虚拟内存空间进行大小(Size)相同的划分,按照预设大小将整个地址空间平均划分为多个区域。例如,在本说明书一示例性实施例中,获取整个虚拟内存空间的大小,并按照根据经验将该虚拟内存空间进行平均划分;或者,无论虚拟内存空间的大小是多少,直接将该虚拟内存空间平均划分为确定个数且大小相等的多个区域。划分的区域大小即是最终的NUMA访存的统计结果的精确度。由于划分的最小区域至少包括一个页,因此,可以推知,本说明书提供的NUMA访存的统计方法获取的最精确统计结果,其精度可以达到页的级别。
在区域确定后,进行步骤S302。
S302,针对每个区域,选择其中少一个页进行缺页处理。
在该步骤中,针对每个步骤S301确定的区域,选择其中一页,对其进行缺页处理,可以包括:清空所选择的页对应的页表项。由于所页表项存储有所选择的页的虚拟地址与物理地址的映射关系,因此,当该被选择的页的页表项被情况时,将无法通过上述映射关系找到该页的虚拟地址对应的物理地址,则会触发缺页异常事件。
在本说明书另一示例性实施例中,在对被选择的页进行缺页处理时,还可以采用将与所选择的页具有映射关系的物理地址设置为不可写的方法,对缺页异常事件进行触发。或者也可以选择其他的方式对该被选择的页进行缺页处理,只要使得当该页被上述被监控进程命中时触发缺页异常事件的处理即可,对被选择的页进行缺页处理的具体方法,在本说明书中不做具体限制。
S303,若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存。
通过上述步骤中对于每个区域中选择的页进行的缺页处理,导致当被监控进程命中该页的时候会触发缺页异常事件,并对该缺页异常事件进行处理,在处理过程中,产生的处理数据包含该页的虚拟地址对应的物理地址属于被监控进程的本地内存还是远程内存,将上述信息称为内存归属信息。
然后,根据上述步骤获得的内存归属信息,统计所述被监控进程对本地内存和远程内存的访问情况:
S304,根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
在本说明书的一示例性实施例中,统计被监控进程对本地内存和远程内存的访问情况,包括:统计被监控进程在预设统计时段内对本地内存和远程内存的访问情况。其中,预设统计时段内包括多个统计周期,且同一区域中在不同统计周期被进行缺页处理的页不相同。在该预设统计时段内,设置数个预设监控周期,该预设监控周期内,对上述步骤中确定的区域中的页进行缺页处理。而在该预设统计时段中的其他预设监控周期中,选择该区域中的另外的页进行缺页处理。每个周期对不同的页进行缺页处理可以保证统计的随机性,提高统计的准确率。预设统计时段可以按照对于统计准确率的要求选择,可以包括预设数量的预设监控周期,也可以直接设置为一个确定的预设统计时段,在该时段中,每经过一个预设监控周期,自动调整进行缺页处理的被选择页。
在本说明书一示例性实施例中,在各个区域所含页的数量相同的情况下,统计周期的数量与每个区域所含页的数量相同。上述确定统计周期的方法,可以保证任一区域中的每个页都曾被选择为被进行缺页处理的页。
通过上述方法可以获得的NUMA访存的统计结果,即被监控进程对本地内存和远程内存的访问情况。在本说明书一示例性实施例中,上述访问情况可以包括:访问本地内存与访问远程内存的访问时间、访问本地内存与访问远程内存的访问频率、针对任一内存的访问时段、以及访问任一内存的总次数等信息。任何可以获得的与NUMA访存有关的信息,均可以包含在上述访问情况内。例如,如表1所示为一进程的NUMA访存统计结果,其上展示有该被监控进程在各个区域中,访问本地内存与远程内存的频率信息,同时,该访存统计结果中还包含有区域相关的信息,如区域的大小、区域地址段的起始地址等。
表1
在获得NUMA访存的统计结果,即被监控进程对本地内存和远程内存的访问情况后,对于该访问情况,可以进行进一步地将其应用与对于内存的优化上。
例如,在本说明书一示例性实施例中,可以根据上述统计结果,确定常用远程内存。常用远程内存为被监控进程在整个统计过程中,访问频率高于预设最高访问频率的远程内存。该最高访问频率可以根据实际应用的经验确定,也可以根据统计结果与实际访问频率之间的对应关系确定。一旦被监控进程对远程地内存的访问频率高于该最高访问频率,证明该远程内存处于经常被访问的状态,此时,可以将该远程内存中存储的数据调配到本地内存中。由于对本地内存的访问时间明显短与远程内存,因此将经常访问的常用远程内存中存储的数据调配到本地内存中进行存储可以有效减少访问内存的时间,提高内存的访问效率。
当然,相对的,也可以将不常用本地内存中存储的数据调配到远程内存中存储。本说明书另一示例性实施例中,根据统计结果确定不常用本地内存,将不常用本地内存中存储的数据调配到远程内存中存储。其中,不常用本地内存的确定方法与上述对常用远程内存的确定方法相类似。当被监控进程对本地内存的访问频率低于预设最低访问频率时,证明该本地内存处于不经常被访问的状态。由于该内存的访问频率低,证明该内存中存储的数据的被利用频率低,因此,将该数据调配到远程内存中存储,将其占用的本地内存空出以供存储访问频率更高的数据,可以提高内存的访问效率。
在本说明书一示例性实施例中,可以同时利用上述两种方法,对本地内存与远程内存中存储的数据进行调配,以使得本地存储有常用的数据而不常用的数据被调配到远程存储,这种方法可以有效提高内存的访问效率,合理分配内存的存储空间。
为更好地说明本说明书提供的NUMA访存的统计方法,下面介绍一详细的具体实施例:
假设如图2所示的位于节点21中的CPU 211中有一进程,现需要对该进程进行访存统计。则将该被监控进程的虚拟内存空间确定出至少一个区域。如图2所示,位于节点21上的内存215与位于节点2上的内存225的物理地址空间对应该CPU 211中被监控进程的虚拟内存空间。假设该虚拟内存空间按照如表1所示的地址段被划分为9个区域。在上述各个区域中,各选取其中至少一页进行缺页处理,具体地,可以选取一页并清空其页表项。若监测到被监控进程触发缺页异常事件,则根据缺页异常事件对应的事件处理数据,确定触发缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存。统计被监控进程在预设统计时段内对本地内存和远程内存的访问情况;其中,预设统计时段内包括多个统计周期,且同一区域中在不同统计周期被进行缺页处理的页不相同。例如,假设需要统计一天时间内该被监控进程对内存的访问情况,该一天时间即为预设统计时段。最后,根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况。该访问情况可以包括每个区域中,对本地内存与远程内存的访问频率,由表1中本地内存的访问频率远程内存的访问频率分别进行表示。当然,最终获取的统计结果中还可以包括如表1所示的各个区域的地址段以及大小等信息。
图4是本说明书一示例性实施例的一种电子设备的结构示意图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408及非易失性存储器410。当然还可能包括其他功能所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成一种NUMA访存的统计装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
相应于上述方法的实施例,本说明书还提供一种NUMA访存的统计装置。
请参考图5,一种NUMA访存的统计装置,该装置可以装置包括:
区域确定单元510,用于将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;
缺页处理单元520,用于针对每个区域,选择其中至少一个页进行缺页处理;
内存归属信息确定单元530,用于若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;
统计单元540,用于根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
可选地,所述区域确定单元510可以具体用于:
在所述被监控进程对应的虚拟内存空间中随机确定出虚拟地址段,并分配至所述至少一个区域;
或者,将所述被监控进程对应的虚拟内存空间按照预设大小平均划分为多个区域。
可选地,所述缺页处理单元520可以具体用于:
清空所选择的页对应的页表项,其中,所述页表项存储有所选择的页的虚拟地址与物理地址的映射关系;
或者,将与所选择的页具有映射关系的物理地址设置为不可写。
可选地,所述统计单元540可以具体用于:
统计所述被监控进程在预设统计时段内对本地内存和远程内存的访问情况;
其中,所述预设统计时段内包括多个统计周期,且同一区域中在不同统计周期被进行缺页处理的页不相同。
可选地,在各个区域所含页的数量相同的情况下,统计周期的数量与每个区域所含页的数量相同。
可选地,所述NUMA访存的统计装置还可以包括:
常用远程内存确定单元550,用于根据统计结果确定常用远程内存;
常用远程内存调配单元560,用于将所述常用远程内存中存储的数据调配到远程内存中存储。
可选地,所述NUMA访存的统计装置还可以包括:
不常用本地内存确定单元570,用于根据统计结果确定不常用本地内存;
不常用本地内存调配单元580,用于将所述不常用本地内存中存储的数据调配到远程内存中存储。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在本说明书一个或多个实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种NUMA访存的统计方法,所述方法包括:
将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;
针对每个区域,选择其中至少一个页进行缺页处理;
若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;
根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
2.如权利要求1所述的方法,所述将被监控进程对应的虚拟内存空间确定为至少一个区域,包括:
在所述被监控进程对应的虚拟内存空间中随机确定出虚拟地址段,并分配至所述至少一个区域;
或者,将所述被监控进程对应的虚拟内存空间按照预设大小平均划分为多个区域。
3.如权利要求1所述的方法,所述选择其中至少一个页进行缺页处理,包括:
清空所选择的页对应的页表项,其中,所述页表项存储有所选择的页的虚拟地址与物理地址的映射关系;
或者,将与所选择的页具有映射关系的物理地址设置为不可写。
4.如权利要求1所述的方法,所述根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况,包括:
统计所述被监控进程在预设统计时段内对本地内存和远程内存的访问情况;
其中,所述预设统计时段内包括多个统计周期,且同一区域中在不同统计周期被进行缺页处理的页不相同。
5.如权利要求4所述的方法,在各个区域所含页的数量相同的情况下,统计周期的数量与每个区域所含页的数量相同。
6.如权利要求1所述的方法,还包括:
根据统计结果确定常用远程内存;
将所述常用远程内存中存储的数据调配到本地内存中存储。
7.如权利要求1所述的方法,还包括:
根据统计结果确定不常用本地内存;
将所述不常用本地内存中存储的数据调配到远程内存中存储。
8.一种NUMA访存的统计装置,所述装置包括:
区域确定单元,用于将被监控进程对应的虚拟内存空间确定为至少一个区域,其中,每个区域至少包括一个页;
缺页处理单元,用于针对每个区域,选择其中至少一个页进行缺页处理;
内存归属信息确定单元,用于若监测到所述被监控进程触发缺页异常事件,则根据所述缺页异常事件对应的事件处理数据,确定触发所述缺页异常事件的页对应的内存归属信息,其中,所述内存归属信息表明触发所述缺页异常事件的页对应的物理地址属于被监控进程的本地内存还是远程内存;
统计单元,用于根据所述内存归属信息统计所述被监控进程对本地内存和远程内存的访问情况。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1-7中任意一项所述方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469533.9A CN114741272A (zh) | 2022-04-28 | 2022-04-28 | Numa访存的统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469533.9A CN114741272A (zh) | 2022-04-28 | 2022-04-28 | Numa访存的统计方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741272A true CN114741272A (zh) | 2022-07-12 |
Family
ID=82285576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210469533.9A Pending CN114741272A (zh) | 2022-04-28 | 2022-04-28 | Numa访存的统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741272A (zh) |
-
2022
- 2022-04-28 CN CN202210469533.9A patent/CN114741272A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170212845A1 (en) | Region migration cache | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US8392657B2 (en) | Monitoring cache usage in a distributed shared cache | |
CN102362464B (zh) | 内存访问监测方法和装置 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
US8560767B2 (en) | Optimizing EDRAM refresh rates in a high performance cache architecture | |
EP2919120B1 (en) | Memory monitoring method and related device | |
US20180032429A1 (en) | Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators | |
US9601180B2 (en) | Automatic partial array self-refresh | |
JP2014164769A (ja) | ホストのサービス品質インジケータに重みを割り当てるための装置および方法ならびに記憶媒体 | |
US10198180B2 (en) | Method and apparatus for managing storage device | |
CN104461735A (zh) | 一种虚拟化场景下分配cpu资源的方法和装置 | |
WO2014178846A1 (en) | Coalescing memory access requests | |
CN115421924A (zh) | 一种内存分配方法、装置及设备 | |
CN107025179B (zh) | 存储器设备及方法 | |
CN118312102A (zh) | Io请求处理方法、装置、存储设备及存储介质 | |
JP5831319B2 (ja) | 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム | |
CN116710886A (zh) | 精简配置的分离式存储器中的页面调度 | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN117215485A (zh) | Zns ssd管理方法及数据写入方法、存储装置、控制器 | |
CN114741272A (zh) | Numa访存的统计方法及装置 | |
WO2023088535A1 (en) | Cache eviction based on current tiering status | |
US20150177987A1 (en) | Augmenting memory capacity for key value cache | |
CN109299021A (zh) | 页迁移方法、装置和中央处理器 | |
CN117813592A (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 |