一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

大页内存动态管理方法、装置和计算机设备与流程

2022-02-22 18:55:40 来源:中国专利 TAG:


1.本发明涉及计算机资源管理技术领域,尤其涉及一种大页内存动态管理方法、装置和计算机设备。


背景技术:

2.大页内存是一种管理内存的有效方式,可以使应用程序获得更佳的性能。大页内存的每个页帧的大小为2m或者1g,与标准的4k大小的页帧相比较,大大减少了页表项的数量,减轻内核页表维护,加载的负担,cpu缓存也可以管理更多的页表,进而提高后备缓冲区(translation lookaside buffer,tlb)的命中效率,使利用大页内存的应用程序获得更佳的性能。
3.现有技术中一般将固定容量的内存设置为大页内存,该设置方式,在大页内存的设置容量过高时,浪费大页内存,导致使用非大页内存的应用程序无法正常使用,在大页内存的初始设置容量过低时,大页内存不足,导致使用大页内存的应用程序无法正常使用。


技术实现要素:

4.鉴于上述问题,本技术提出一种大页内存动态管理方法、装置和计算机设备,以实时管理大页内存,提高大页内存的使用效率。
5.第一方面,本技术实施例提出一种大页内存动态管理方法,所述方法包括:
6.实时监测每一台主机的大页内存的使用情况;
7.根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。
8.本技术实施例所述的大页内存动态管理方法,所述根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,包括:
9.根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数;
10.在所述第i个空闲容量大于预设的容量阈值时,记录大于所述容量阈值的第i个持续时长;
11.若所述第i个持续时长大于等于预设的时长阈值,则将所述第i个空闲容量与所述容量阈值之差对应的大页内存转换为非大页内存。
12.本技术实施例所述的大页内存动态管理方法,还包括:
13.在具有大页内存功能的虚拟机启动时,确定所述虚拟机的大页内存的目标容量;
14.根据所述目标容量和各台主机的大页内存的使用情况从所述各台主机中确定目标主机;
15.通过所述目标主机启动所述虚拟机。
16.本技术实施例所述的大页内存动态管理方法,所述根据所述目标容量和各台主机的大页内存的使用情况从所述各台主机中确定目标主机,包括:
17.根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数;
18.从i个空闲容量中确定最大空闲容量;
19.确定所述最大空闲容量是否大于等于所述目标容量;
20.在所述最大空闲容量大于等于所述目标容量的情况下,将所述最大空闲容量对应的主机作为所述目标主机。
21.本技术实施例所述的大页内存动态管理方法,还包括:
22.在所述最大空闲容量小于所述目标容量的情况下,获取所述各台主机的当前空闲内存;
23.从所述各台主机的当前空闲内存中确定最大当前空闲内存;
24.将所述最大当前空闲内存对应的主机作为所述目标主机。
25.本技术实施例所述的大页内存动态管理方法,所述通过所述目标主机启动所述虚拟机,包括:
26.根据所述目标容量和所述目标主机对应的最大空闲容量确定申请容量;
27.向所述目标主机申请所述申请容量的大页内存;
28.在所述目标主机接受所述申请并将所述申请容量的非大页内存转换为大页内存后,利用所述目标主机启动所述虚拟机。
29.第二方面,本技术实施例还提出一种大页内存动态管理装置,所述装置包括:
30.监测模块,用于实时监测每一台主机的大页内存的使用情况;
31.调整模块,用于根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。
32.本技术实施例所述的大页内存动态管理装置,所述根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,包括:
33.根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数;
34.在所述第i个空闲容量大于预设的容量阈值时,记录大于所述容量阈值的第i个持续时长;
35.若所述第i个持续时长大于等于预设的时长阈值,则将所述第i个空闲容量与所述容量阈值之差对应的大页内存转换为非大页内存。
36.第三方面,本技术实施例还提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行本技术实施例所述的大页内存动态管理方法。
37.第四方面,本技术实施例还提出一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行本技术实施例所述的大页内存动态管理方法。
38.本技术实时监测所述每一台主机的大页内存的使用情况;根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。本技术根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,可以有效减少多台主机的大页内存的总空闲容量,避免大页内存浪费。
附图说明
39.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
40.图1示出了本技术实施例提出一种大页内存动态管理方法的流程示意图;
41.图2示出了本技术实施例提出一种大页内存动态管理方法中动态调整大页内存过程的流程示意图;
42.图3示出了本技术实施例提出另一种大页内存动态管理方法的流程示意图;
43.图4示出了本技术实施例提出另一种大页内存动态管理方法中确定各台主机的大页内存的空闲容量的流程示意图;
44.图5示出了本技术实施例提出另一种大页内存动态管理方法中确定目标主机过程的流程示意图;
45.图6示出了本技术实施例提出一种大页内存动态管理装置的结构示意图。
具体实施方式
46.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
47.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
49.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
50.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
51.本技术实施例通过对多台主机进行集中管理,一方面,根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,以减少多台主机的大页内存的总空闲容量,避免大页内存浪费;另一方面,在启动具有大页内存功能虚拟机时,根据虚拟机的大页内存的目标容量和各台主机的大页内存的使用情况从各台主机中确定目标主机,以通过目标主机启动该虚拟机,实现各台主机资源的合理分配,从而使得资源平衡。
52.下面本技术将以具体实施例对大页内存动态管理方法进行详细的解释说明。
53.实施例1
54.请参见图1,本技术的一个实施例,提出一种大页内存动态管理方法,该方法包括以下步骤:
55.步骤s100,实时监测每一台主机的大页内存的使用情况。
56.可以理解,用于动态管理大页内存的计算设备和被管理的每一台主机之间连接,可以是有线连接,也可以是无线连接,用于动态管理大页内存的计算设备可以与每一台主机之间进行通信。在启动大页内存动态管理模式时,用于动态管理大页内存的计算设备将按照预设的设置比例和每一台主机的总内存容量设置每一台主机的大页内存的初始容量。
57.其中,设置比例可以是10%、12%、15%、20%等。示例性的,若预设的设置比例是10%,则被管理的每一台主机的总内存容量的10%将作为大页内存的初始容量。各台主机的总内存容量的10%可以用来组建一个大页内存池,通过计算设备动态可以管理大页内存池。
58.可以理解,计算机设备可以实时依次查看每一台主机的大页内存的使用情况,也可以同时查看个台主机的大页内存的使用情况,以确定每一台主机中处于空闲状态的大页内存的空闲容量。
59.示例性的,在宿主机上通过查看/proc/meminfo查看主机大页内存的使用情况,hugepages_total字段可以知道主机分配的总的大页内存数,hugepages_free字段可以知道主机空闲的大页内存数,hugepagesize字段表示主机大页内存大小。
60.步骤s200,根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。
61.根据每一台主机的大页内存的使用情况可以确定每一台主机处于空闲状态的大页内存的空闲容量,例如,计算机设备可以获取到一台主机处于空闲状态的大页内存的空闲容量为12g。
62.根据每一台主机的大页内存的使用情况还可以确定每一台主机处于空闲状态的大页内存的空闲比例,例如,计算机设备可以获取到一台主机处于空闲状态的大页内存的空闲比例为50%,即空闲比例占该台主机全部大页内存容量的50%。
63.示例性的,请参见图2,本实施例中,以根据每一台主机的大页内存的使用情况确定每一台主机处于空闲状态的大页内存的空闲容量为例,该步骤s200包括以下步骤:
64.步骤s210,根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数。
65.步骤s220,在所述第i个空闲容量大于预设的容量阈值时,记录大于所述容量阈值的第i个持续时长。
66.步骤s230,确定所述第i个持续时长是否大于等于预设的时长阈值。
67.若所述第i个持续时长大于等于预设的时长阈值,则执行步骤s240,若所述第i个持续时长小于预设的时长阈值,则执行步骤s250。
68.步骤s240,将所述第i个空闲容量与所述容量阈值之差对应的大页内存转换为非大页内存。
69.示例性的,可以通过以下命令对空闲大页内存进行回收处理:
70.sysctl
ꢀ‑
w vm.nr_hugepages=大页内存数。
71.在第i台主机的第i个空闲容量大于预设的容量阈值且大于所述容量阈值的第i个持续时长大于等于预设的时长阈值时,则将第i台主机中第i个空闲容量与所述容量阈值之差对应的大页内存转换为非大页内存,以避免大页内存浪费,影响第i台主机中使用非大页内存的应用程序的正常使用。
72.步骤s250,保持第i台主机的大页内存的当前容量。
73.在第i台主机的第i个空闲容量小于等于预设的容量阈值或第i台主机的第i个空闲容量大于所述容量阈值的第i个持续时长小于预设的时长阈值时,则保持第i台主机的大页内存的当前容量,以避免大页内存和非大页内存的频繁转换,影响主机的稳定性。
74.本实施例按照预设的设置比例和每一台主机的总内存容量设置所述每一台主机的大页内存的初始容量;实时监测所述每一台主机的大页内存的使用情况;根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。本实施例根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,可以有效减少多台主机的大页内存的总空闲容量,避免大页内存浪费。
75.实施例2
76.请参见图3,本技术的另一个实施例,提出的大页内存动态管理方法,在上述步骤s200之后,还包括以下步骤s300~s500:
77.步骤s300,在具有大页内存功能的虚拟机启动时,确定所述虚拟机的大页内存的目标容量。
78.可以理解,虚拟机包括使用大页内存的虚拟机和使用非大页内存的虚拟机,使用大页内存的虚拟机的启动受限于用于启动该虚拟机的主机设置的大页内存数,当该主机大页内存数分配过多,占用主机太多的内存,导致使用非大页内存的虚拟机因为内存不足启动失败,浪费内存,当主机大页内存数过少时,导致使用大页内存的虚拟机因为大页内存不足,导致启动失败。
79.本实施例,在具有大页内存功能虚拟机启动时,确定所述虚拟机的大页内存的目标容量,以通过目标容量从各台主机中确定用于启动该虚拟机的目标主机。
80.步骤s400,根据所述目标容量和各台主机的大页内存的使用情况从所述各台主机中确定目标主机。
81.可以根据各台主机的大页内存的使用情况确定各台主机的大页内存的空闲比例或空闲容量,以基于空闲比例或空闲容量从所述各台主机中确定目标主机。
82.示例性的,请参见图4,以根据各台主机的大页内存的使用情况确定各台主机的大页内存的空闲容量为例,该步骤s400包括以下步骤s210~s470:
83.步骤s210,根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数。
84.步骤s420,从i个空闲容量中确定最大空闲容量。
85.步骤s430,确定所述最大空闲容量是否大于等于所述目标容量。
86.在所述最大空闲容量大于等于所述目标容量的情况下,执行步骤s440,在所述最大空闲容量小于所述目标容量的情况下,步骤s450~s470。
87.步骤s440,将所述最大空闲容量对应的主机作为所述目标主机。
88.步骤s450,获取所述各台主机的当前空闲内存。
89.步骤s460,从所述各台主机的当前空闲内存中确定最大当前空闲内存。
90.步骤s470,将所述最大当前空闲内存对应的主机作为所述目标主机。
91.根据所述目标容量和各台主机的大页内存的使用情况从所述各台主机中确定目标主机后,在执行以下步骤s500。
92.步骤s500,通过所述目标主机启动所述虚拟机。
93.示例性的,在所述最大空闲容量大于等于所述目标容量的情况下,确定的目标主机可以直接启动所述虚拟机。
94.示例性的,请参见图5,在所述最大空闲容量小于所述目标容量的情况下,将最大当前空闲内存对应的主机作为所述目标主机后,该步骤s500包括以下步骤:
95.步骤s510,根据所述目标容量和所述目标主机对应的最大空闲容量确定申请容量。
96.可以理解,申请容量可以等于最大空闲容量与目标容量之差,也可以大于最大空闲容量与目标容量之差。
97.步骤s520,向所述目标主机申请所述申请容量的大页内存。
98.步骤s530,在所述目标主机接受所述申请并将所述申请容量的非大页内存转换为大页内存后,利用所述目标主机启动所述虚拟机。
99.本实施例在启动具有大页内存功能虚拟机时,根据虚拟机的大页内存的目标容量和各台主机的大页内存的使用情况从各台主机中确定目标主机,以通过目标主机启动该虚拟机,在确定目标主机后,若目标主机对应的最大空闲容量小于所述目标容量的,还将目标主机的非大页内存转换为大页内存,本实施例实现各台主机资源的合理分配,动态确定用于启动虚拟机的目标主机,最大程度上做到灵活调度,从而使得资源平衡。
100.实施例3
101.请参见图6,本技术的第三个实施例,提出一种大页内存动态管理装置10,该装置包括:监测模块11和调整模块12。
102.监测模块11,用于实时监测每一台主机的大页内存的使用情况;调整模块12,用于根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量。
103.进一步的,所述根据所述每一台主机的大页内存的使用情况动态调整所述每一台主机的大页内存的实时容量,包括:根据第i台主机的大页内存的使用情况确定所述第i台主机中处于空闲状态的大页内存的第i个空闲容量,1≤i≤i,i为主机总数;在所述第i个空闲容量大于预设的容量阈值时,记录大于所述容量阈值的第i个持续时长;若所述第i个持续时长大于等于预设的时长阈值,则将所述第i个空闲容量与所述容量阈值之差对应的大页内存转换为非大页内存。
104.本实施例公开的大页内存动态管理装置通过监测模块11和调整模块12的配合使用,用于执行上述实施例所述的大页内存动态管理方法,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。
105.实施例4
106.本技术的第四个实施例,提出一种计算机设备,包括存储器和处理器,所述存储器
存储有计算机程序,所述计算机程序在所述处理器上运行时执行本技术上述实施例所述的大页内存动态管理方法。
107.实施例5
108.本技术的第五个实施例,提出一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行本技术上述实施例所述的大页内存动态管理方法。
109.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
110.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
111.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
112.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献