CN111522659A - 一种空间使用方法和装置 - Google Patents
一种空间使用方法和装置 Download PDFInfo
- Publication number
- CN111522659A CN111522659A CN202010293976.8A CN202010293976A CN111522659A CN 111522659 A CN111522659 A CN 111522659A CN 202010293976 A CN202010293976 A CN 202010293976A CN 111522659 A CN111522659 A CN 111522659A
- Authority
- CN
- China
- Prior art keywords
- target
- space
- swap
- container
- target container
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000013507 mapping Methods 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims description 33
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000002955 isolation Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
本申请提供了一种空间使用方法和装置,通过获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用;实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
Description
技术领域
本申请涉及Swap空间技术领域,更具体的说是涉及一种空间使用方法和装置。
背景技术
目前,当在同一服务器中部署多个容器时,为了提高服务器的资源利用率,需要限制每个容器使用宿主机服务器内存资源的上限。具体的,是将容器在运行过程中能够使用的物理内存与SWAP空间之和作为内存资源的上限值。
那么,当在同一服务器部署大量内存密集型容器时,各个容器在运行时会对宿主机的内存资源进行争抢,从而导致容器应用的性能下降,甚至会出现可用内存资源的不足而造成OOM(Out OF Memory,内存耗尽)的情况,最终使得容器崩溃退出。
发明内容
有鉴于此,本申请提供一种空间使用方法和装置,以解决上述技术问题。
为实现上述目的,本申请提供如下技术方案:
一种空间使用方法,包括:
获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
可选的,所述基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,包括:
在所述电子设备的磁盘中创建总大小与所述交换空间大小一致的至少一个目标交换文件;
利用所述目标交换文件创建目标交换空间;其中,一个所述目标交换文件对应一个目标交换空间;
激活所述目标交换空间。
可选的,其中,当包含至少两个目标交换空间时,还包括:
确定所述至少两个目标交换空间的优先级;
相应的,所述基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:
基于所述交换映射列表以及所述至少两个目标交换空间的优先级控制所述目标容器对所述至少两个目标交换空间的使用顺序。
可选的,所述基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:
在所述电子设备的物理内存的可用空间低于预设阈值时,确定当前需要从所述物理内存中换出的目标内存页;
确定所述目标内存页所属容器的目标容器标识;
基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间;
在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位。
可选的,所述确定所述目标内存页所属容器的目标容器标识,包括:
获取所述目标内存页的进程信息;
在所述进程信息中确定所述目标内存页所属目标容器的目标容器标识。
可选的,还包括:
确定所述目标容器标识对应的目标交换空间中已用目标交换空间大小;
在所述目标容器的配置信息中获取所述目标容器所需的所述交换空间大小;
基于所述已用目标交换空间大小以及所述交换空间大小判断剩余目标交换空间大小是否能够存储所述目标内存页,若能,触发所述在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位的步骤。
可选的,还包括:
确定所述目标容器退出时,在所述交换映射列表中删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间。
可选的,还包括:
在所述目标容器运行过程中,确定满足更改交换空间的条件时,获取更改交换空间大小;
基于所述更改交换空间大小重新为所述目标容器分配目标交换空间。
可选的,所述获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识,包括:
在电子设备中创建目标容器,生成目标容器标识;
获取所述目标容器的内存需求信息;
基于所述内存需求信息确定所述目标容器所需的交换空间大小。
一种空间使用装置,包括:
容器控制模块,用于获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
Swap空间控制模块,基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
Swap映射模块,用于存储所述交换映射列表;
所述Swap空间控制模块,还用于基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
一种电子设备,包括:
磁盘,用于存储程序;
内存储器;
处理器,用于在所述内存储器上运行所述程序,所述程序用于获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
经由上述的技术方案可知,本申请提供了一种空间使用方法,通过获取当前创建的目标容器所需的交换空间大小为目标容器分配磁盘中的目标交换空间,从而确定目标交换空间与目标容器的目标容器标识的对应关系,从而生成交换映射列表,以基于交换映射列表控制目标容器对目标交换空间的使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请方法实施例一提供的一种空间使用方法的流程示意图;
图2为本申请方法实施例一中提供的Swap信息的数据结构;
图3为本申请方法实施例二提供的一种空间使用方法的流程示意图;
图4为本申请方法实施例三提供的一种空间使用方法的流程示意图;
图5a为本申请方法实施例三中一个实例提供的一种内存页分配Swap空间的示意图;
图5b为本申请方法实施例三中一个实例提供的另一种内存页分配Swap空间的示意图;
图6为本申请方法实施例四提供的一种空间使用方法的流程示意图;
图7为本申请方法实施例五提供的一种空间使用方法的流程示意图;
图8为本申请方法实施例六提供的一种空间使用方法的流程示意图;
图9为本申请装置实施例一提供的一种空间使用装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请方法实施例一提供了一种空间使用方法,如图1所示,该方法包括如下步骤:
步骤101:获取电子设备中当前创建的目标容器所需的交换空间大小以及目标容器的目标容器标识;
该电子设备可以为服务器,或者其他计算终端。在电子设备中创建一容器时,可以确定该容器为目标容器,从而获取目标容器所需的交换空间大小和目标容器标识。其中,交换空间大小可以指代为Swap空间大小。
具体的,获取电子设备中当前创建的目标容器所需的交换空间大小以及目标容器的目标容器标识,可以包括如下过程:
(1)在电子设备中创建目标容器,生成目标容器标识;
(2)获取目标容器的内存需求信息;
(3)基于所述内存需求信息确定目标容器所需的交换空间大小。
其中,内存需求信息用于表征为目标容器指定的内存需求,可以包括:是否需要使用Swap空间,所需内存大小等信息,所需内存大小包括:所需物理内存大小以及所需交换空间大小等。
步骤102:基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
其中,可以在Swap现有的数据结构中增加目标容器标识,如目标容器ID,作为一种具体实现,如图2所示,可以修改内核中管理的Swap信息的数据结果,如:linux/swap.h中的swap_info_struct结构体,增加数据项用于标识每个Swap空间所属的容器ID(如:unsignedlong container_id;)。在本申请中,还可以设置电子设备支持的交换空间的最大数目MAX_SWAPFILES,例如:210=1024。也就是说,在本实施例,可以基于交换空间大小为目标容器分配磁盘中的至少一个目标交换空间。
步骤103:基于所述交换映射列表控制目标容器对所述目标交换空间的使用。
由此可见,本实施例中,通过获取当前创建的目标容器所需的交换空间大小为目标容器分配磁盘中的目标交换空间,从而确定目标交换空间与目标容器的目标容器标识的对应关系,从而生成交换映射列表,以基于交换映射列表控制目标容器对目标交换空间的使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
需说明的是,在现有技术中,能够限定的是容器使用宿主机内存相关资源的最大量,该最大量为容器在运行过程中能够使用宿主机内存与Swap空间之和的最大值,而不能限制多个容器之间对宿主机内存资源的争抢使用。而通常情况下,电子设备的磁盘中配置的Swap空间是固定或者是未配置的,容器无法根据实际需求对Swap空间进行动态调整。当在同一服务器部署大量内存密集型容器时,各个容器在运行时会对宿主机的内存资源进行争抢,从而导致容器应用的性能下降,甚至会出现可用内存资源的不足而造成OOM(Out OFMemory,内存耗尽)的情况,最终使得容器崩溃退出。而本申请中,能够为目标容器分配指定的目标交换空间,并建立目标交换空间与目标容器标识的对应关系,从而使得目标容器能够对目标交换空间进行使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
本申请方法实施例二提供了一种空间使用方法,如图3所示,该方法包括如下步骤:
步骤301:获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
步骤302:在所述电子设备的磁盘中创建总大小与所述交换空间大小一致的至少一个目标交换文件;
例如,可以通过fallocate命令创建至少一个目标交换文件,该目标交换文件又可以称之为目标Swap文件。当创建多个目标交换文件时,该多个目标交换文件的总大小与交换空间大小一致。
步骤303:利用所述目标交换文件创建目标交换空间;
其中,一个目标交换文件对应一个目标交换空间。
步骤304:确定至少两个目标交换空间的优先级;
当创建至少两个目标交换空间时,可以确定该至少两个目标交换空间的优先级,用于限定目标容器使用目标交换空间的使用顺序。
步骤305:激活所述目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
需说明的是,步骤304可以作为本实施例的可选步骤,即,另一种实现方式下,步骤302、步骤303以及步骤305可以作为方法实施例一步骤“基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标标识的对应关系,生成交换映射列表”的具体实现。那么,相应的,步骤306可以为基于所述交换映射列表控制所述目标容器对所述至少两个目标交换空间的使用。
当创建有多个目标交换空间时,可以确定多个目标交换空间与目标标识的对应关系,即交换映射列表中可以映射有与目标容器标识对应的多个目标交换空间。
步骤306:基于所述交换映射列表以及所述至少两个目标交换空间的优先级控制所述目标容器对所述至少两个目标交换空间的使用顺序。
至少两个目标交换空间的优先级用于限定目标容器使用目标交换空间的使用顺序,即,优先级高的目标交换空间先使用,优先级低的目标交换空间后使用。
由此可见,本实施例中,能够为目标容器分配指定的目标交换空间,并建立目标交换空间与目标容器标识的对应关系,从而使得目标容器能够对目标交换空间进行使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性;并且,当为目标容器分配多个目标交换空间时,还可以设定多个目标交换空间的优先级,以基于优先级控制目标容器对多个目标交换空间的使用顺序,进一步提高Swap空间资源使用的灵活性。
本申请方法实施例三提供了一种空间使用方法,如图4所示,该方法包括如下步骤:
步骤401:获取电子设备中当前创建的目标容器所需的交换空间大小以及目标容器的目标容器标识;
步骤402:基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
步骤403:在所述电子设备的物理内存的可用空间低于预设阈值时,确定当前需要从所述物理内存中换出的目标内存页;
在目标容器运行过程中,会使用电子设备的物理内存资源,而当物理内存资源不足时,可以触发内存Swap-out操作,从而确定当前需要从物理内存中换出的目标内存页。
步骤404:确定所述目标内存页所属容器的目标容器标识;
其中,确定所述目标内存页所属容器的目标容器标识,包括如下过程:
(1)获取所述目标内存页的进程信息;
(2)在所述进程信息中确定所述目标内存页所属目标容器的目标容器标识。
也就是说,通过查看目标内存页的进程信息可以确定目标内存也所属目标容器的目标容器标识。
需说明的是,在本申请中,存在一种情况,即,电子设备中并不是所有的容器在创建时均分配了交换空间,那么一些需要被换出的内存页可能属于未分配交换空间的容器,因此另一种实现方式下,在获取到目标内存页的进程信息后,可以在进程信息中判断该目标内存页是否处于已分配交换空间的容器,若是,则可以在进程信息中进一步确定目标内存页所属目标容器的目标容器标识,若否,则可以按照现有的交换空间使用方法进行后续处理。
步骤405:基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间;
步骤406:在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位。
其中,步骤403-步骤406为方法实施一中,步骤“基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用”的一种具体实现。
在为目标内存页分配了空闲槽位后,一种方式下,可以直接将该目标内存页写入到磁盘的交换空间中相应的空闲槽位上;另一种方式下,为了提高写入效率,可以先为该目标内存页设置指定标志,如Dirty标志,在达到指定时间或者设置指定标志的目标内存页达到一定量时,再将所有的目标内存页一并写入到磁盘的交换空间中的相应槽位上。
本实施例中,在电子设备的物理内存不足时,能够将需要从所述物理内存中换出的目标内存页写入到为其所属容器分配的交换空间中,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
为了便于理解,本实施例以一具体实例进行说明,如图5a和图5b所示,图5a为现有技术中为内存页分配Swap空间的示意图,由图5a可以看出,容器ID_01、容器ID_02、容器ID_03争抢磁盘中的Swap空间,内存空间不足时,容器ID_01无法争抢到Swap空间,其中一个内存页将无法写入到Swap空间中。
图5b为本申请中为内存页分配Swap空间的示意图,由如图5b可以看出,容器ID_01分配了磁盘中的Swap空间,内存空间不足时,容器ID_01的内存页可以写入到为其分配的Swap空间中,实现了与其他容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了容器运行的可靠性。
进一步的,在本申请中,在目标容器运行过程发生缺页中断时,还可以将目标容器对应的目标交换空间中的内存页加载到物理内存中。
需说明的是,当目标容器具有多个目标交换空间,且为该多个目标交换空间指定优先级时,在基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间后,可以基于目标交换空间的优先级在目标交换空间中确定空闲槽位,即先查看优先级高的目标交换空间是否具有空闲槽位,若有,直接为目标内存页分配该空闲槽位,若没有再查看优先级低的目标交换空间是否具有空闲槽位。
本申请方法实施例四提供了一种空间使用方法,如图6所示,该方法包括如下步骤:
步骤601:获取电子设备中当前创建的目标容器所需的交换空间大小以及目标容器的目标容器标识;
步骤602:基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
步骤603:在所述电子设备的物理内存的可用空间低于预设阈值时,确定当前需要从所述物理内存中换出的目标内存页;
步骤604:确定所述目标内存页所属容器的目标容器标识;
步骤605:基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间;
步骤606:确定所述目标容器标识对应的目标交换空间中已用目标交换空间大小;
步骤607:在所述目标容器的配置信息中获取所述目标容器所需的所述交换空间大小;
需说明的是,在本申请中,在为所述目标容器分配所述电子设备的磁盘中的目标交换空间过程中,可以在目标容器的配置信息中增加Swap空间的相关信息,该Swap空间的相关信息可以表征为目标容器分配的交换空间大小。从而在目标容器运行过程中,能够在目标容器的配置信息中获取到目标容器所需的交换空间大小。
具体的,可以通过修改目标容器对应的CGroups中Memory子系统的配置信息来增加Swap空间的相关信息。
其中,该配置信息中还可以增加为目标容器分配的物理内存容量,从而在所述目标容器运行过程中控制所述目标容器使用内存的上限为所述物理内存容量和所述交换空间大小之和。
步骤608:基于所述已用目标交换空间大小以及所述交换空间大小判断剩余目标交换空间大小是否能够存储所述目标内存页,若能,进入步骤609;
交换空间大小用于表征为目标容器分配的总Swap空间大小,那么,在其基础上减去已用目标交换空间大小则能够得到剩余目标交换空间大小,从而判断目标交换空间大小是否能够存储所述目标内存页。
步骤609:在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位。
本实施例中,在电子设备的物理内存不足时,能够确定剩余目标交换空间大小是否能够存储目标内存页,在能存储的情况下,将需要从所述物理内存中换出的目标内存页写入到为其所属容器分配的目标交换空间中,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
本申请方法实施例五提供了一种空间使用方法,如图7所示,该方法包括如下步骤:
步骤701:获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
步骤702:基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
步骤703:基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用;
步骤704:确定所述目标容器退出时,在所述交换映射列表中删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间。
通过删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间,从而将回收的交换空间提供给其他容器所用,如在电子设备中创建新的容器时,可以为新的容器分配交换空间,提高了交换空间的使用效率。
本申请方法实施例六提供了一种空间使用方法,如图8所示,该方法包括如下步骤:
步骤801:获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
步骤802:基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
步骤803:基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用;
步骤804:在所述目标容器运行过程中,确定满足更改交换空间的条件时,获取更改交换空间大小;
该更新交换空间的条件可以包括人为触发的更改交换空间的指令,指令中携带有更改交互空间大小。或者,在目标容器运行过程中,当确定为目标容器分配的目标交换空间不足时,确定满足更改交换空间的条件,从而基于运行情况确定更改交换空间大小,或者直接获取预先设定的更改交互空间大小。
步骤805:基于所述更改交换空间大小重新为所述目标容器分配目标交换空间。
其中,重新为目标容器分配目标交换空间的方式与前述的分配方式一致,不再重复赘述。
由此可见,本实施例中,通过获取当前创建的目标容器所需的交换空间大小为目标容器分配磁盘中的目标交换空间,从而确定目标交换空间与目标容器的目标容器标识的对应关系,从而生成交换映射列表,以基于交换映射列表控制目标容器对目标交换空间的使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性;并且,在目标容器运行过程中,还可以对目标容器分配的目标交换空间进行修改,提高使用目标交换空间的灵活性。
与上述一种空间使用方法对应的,本申请还提供了一种空间使用装置,以下通过几个装置实施例进行描述。
本申请装置实施例一提供了一种空间使用装置,如图9所示,该装置包括:容器控制模块901、Swap空间控制模块902以及Swap映射模块903。其中:
容器控制模块901,用于获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识。
具体的,容器控制模块901获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识,包括:在电子设备中创建目标容器,生成目标容器标识;获取所述目标容器的内存需求信息;基于所述内存需求信息确定所述目标容器所需的交换空间大小。
Swap空间控制模块902,基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表。
Swap映射模块903,用于存储所述交换映射列表。
Swap空间控制模块902,还用于基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
由此可见,本实施例中,通过获取当前创建的目标容器所需的交换空间大小为目标容器分配磁盘中的目标交换空间,从而确定目标交换空间与目标容器的目标容器标识的对应关系,从而生成交换映射列表,以基于交换映射列表控制目标容器对目标交换空间的使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
在本申请装置实施例二中,Swap空间控制模块基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,包括:在所述电子设备的磁盘中创建总大小与所述交换空间大小一致的至少一个目标交换文件;利用所述目标交换文件创建目标交换空间;其中,一个所述目标交换文件对应一个目标交换空间;激活所述目标交换空间。
当包含至少两个目标交换空间时,Swap空间控制模块还用于确定所述至少两个目标交换空间的优先级;相应的,所述Swap空间控制模块基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:基于所述交换映射列表以及所述至少两个目标交换空间的优先级控制所述目标容器对所述至少两个目标交换空间的使用顺序。
由此可见,本实施例中,能够为目标容器分配指定的目标交换空间,并建立目标交换空间与目标容器标识的对应关系,从而使得目标容器能够对目标交换空间进行使用,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性;并且,当为目标容器分配多个目标交换空间时,还可以设定多个目标交换空间的优先级,以基于优先级控制目标容器对多个目标交换空间的使用顺序,进一步提高Swap空间资源使用的灵活性。
在本申请装置实施例三中,Swap空间控制模块基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:在所述电子设备的物理内存的可用空间低于预设阈值时,确定当前需要从所述物理内存中换出的目标内存页;确定所述目标内存页所属容器的目标容器标识;基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间;在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位。
其中,Swap空间控制模块确定所述目标内存页所属容器的目标容器标识,包括:获取所述目标内存页的进程信息;在所述进程信息中确定所述目标内存页所属目标容器的目标容器标识。
也就是说,通过查看目标内存页的进程信息可以确定目标内存也所属目标容器的目标容器标识。
需说明的是,在本申请中,存在一种情况,即,电子设备中并不是所有的容器在创建时均分配了交换空间,那么一些需要被换出的内存页可能属于未分配交换空间的容器,因此另一种实现方式下,Swap空间控制模块在获取到目标内存页的进程信息后,可以在进程信息中判断该目标内存页是否处于已分配交换空间的容器,若是,则可以在进程信息中进一步确定目标内存页所属目标容器的目标容器标识,若否,则按照现有的交换空间使用方法进行后续处理。
在为目标内存页分配了空闲槽位后,一种方式下,Swap空间控制模块可以直接将该目标内存页写入到磁盘的交换空间中相应的空闲槽位上;另一种方式下,为了提高写入效率,Swap空间控制模块可以先为该目标内存页设置指定标志,如Dirty标志,在达到指定时间或者设置指定标志的目标内存页达到一定量时,再将所有的目标内存页一并写入到磁盘的交换空间中的相应槽位上。
本实施例中,在电子设备的物理内存不足时,能够将需要从所述物理内存中换出的目标内存页写入到为其所属容器分配的交换空间中,实现了不同容器之间Swap空间的隔离,避免了Swap空间资源的竞争,提高了目标容器运行的可靠性。
进一步的,在本申请中,在目标容器运行过程发生缺页中断时,Swap空间控制模块还用于将目标容器对应的目标交换空间中的内存页加载到物理内存中。
需说明的是,当目标容器具有多个目标交换空间,且为该多个目标交换空间指定优先级时,Swap空间控制模块在基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间后,可以基于目标交换空间的优先级在目标交换空间中确定空闲槽位,即先查看优先级高的目标交换空间是否具有空闲槽位,若有,直接为目标内存页分配该空闲槽位,若没有再查看优先级低的目标交换空间是否具有空闲槽位。
在本申请装置实施例四中,Swap空间控制模块还用于确定所述目标容器标识对应的目标交换空间中已用目标交换空间大小;在所述目标容器的配置信息中获取所述目标容器所需的所述交换空间大小;基于所述已用目标交换空间大小以及所述交换空间大小判断剩余目标交换空间大小是否能够存储所述目标内存页,若能,触发所述在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位的步骤。
需说明的是,在本申请中,Swap空间控制模块在为所述目标容器分配所述电子设备的磁盘中的目标交换空间过程中,可以在目标容器的配置信息中增加Swap空间的相关信息,该Swap空间的相关信息可以表征为目标容器分配的交换空间大小。从而在目标容器运行过程中,能够在目标容器的配置信息中获取到目标容器所需的交换空间大小。
其中,该配置信息中还可以增加为目标容器分配的物理内存容量,从而在所述目标容器运行过程中控制所述目标容器使用内存的上限为所述物理内存容量和所述交换空间大小之和。
在本申请装置实施例五中,Swap空间控制模块还用于确定所述目标容器退出时,在所述交换映射列表中删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间。
通过删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间,从而将回收的交换空间提供给其他容器所用,如在电子设备中创建新的容器时,可以为新的容器分配交换空间,提高了交换空间的使用效率。
在本申请装置实施例六中,Swap空间控制模块还用于在所述目标容器运行过程中,确定满足更改交换空间的条件时,获取更改交换空间大小;基于所述更改交换空间大小重新为所述目标容器分配目标交换空间。
该更新交换空间的条件可以包括人为触发的更改交换空间的指令,指令中携带有更改交互空间大小。或者,在目标容器运行过程中,当确定为目标容器分配的目标交换空间不足时,确定满足更改交换空间的条件,从而基于运行情况确定更改交换空间大小,或者直接获取预先设定的更改交互空间大小。
与上述一种空间使用方法对应的,本申请还提供了一种电子设备,包括:
磁盘,用于存储程序;
内存储器;
处理器,用于在所述内存储器上运行所述程序,所述程序用于获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
需说明的是,关于程序能够实现的其他功能可参加上述方法实施例,在此不再详细赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种空间使用方法,包括:
获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
2.根据权利要求1所述的方法,所述基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,包括:
在所述电子设备的磁盘中创建总大小与所述交换空间大小一致的至少一个目标交换文件;
利用所述目标交换文件创建目标交换空间;其中,一个所述目标交换文件对应一个目标交换空间;
激活所述目标交换空间。
3.根据权利要求2所述的方法,其中,当包含至少两个目标交换空间时,还包括:
确定所述至少两个目标交换空间的优先级;
相应的,所述基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:
基于所述交换映射列表以及所述至少两个目标交换空间的优先级控制所述目标容器对所述至少两个目标交换空间的使用顺序。
4.根据权利要求1所述的方法,所述基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用,包括:
在所述电子设备的物理内存的可用空间低于预设阈值时,确定当前需要从所述物理内存中换出的目标内存页;
确定所述目标内存页所属容器的目标容器标识;
基于所述交换映射列表确定与所述目标容器标识对应的目标交换空间;
在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位。
5.根据权利要求4所述的方法,所述确定所述目标内存页所属容器的目标容器标识,包括:
获取所述目标内存页的进程信息;
在所述进程信息中确定所述目标内存页所属目标容器的目标容器标识。
6.根据权利要求4所述的方法,还包括:
确定所述目标容器标识对应的目标交换空间中已用目标交换空间大小;
在所述目标容器的配置信息中获取所述目标容器所需的所述交换空间大小;
基于所述已用目标交换空间大小以及所述交换空间大小判断剩余目标交换空间大小是否能够存储所述目标内存页,若能,触发所述在所述目标交换空间中确定空闲槽位,为所述目标内存页分配所述空闲槽位的步骤。
7.根据权利要求1所述的方法,还包括:
确定所述目标容器退出时,在所述交换映射列表中删除所述目标容器标识与所述目标交换空间的对应关系,并回收所述目标交换空间。
8.根据权利要求1所述的方法,还包括:
在所述目标容器运行过程中,确定满足更改交换空间的条件时,获取更改交换空间大小;
基于所述更改交换空间大小重新为所述目标容器分配目标交换空间。
9.根据权利要求1所述的方法,所述获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识,包括:
在电子设备中创建目标容器,生成目标容器标识;
获取所述目标容器的内存需求信息;
基于所述内存需求信息确定所述目标容器所需的交换空间大小。
10.一种空间使用装置,包括:
容器控制模块,用于获取电子设备中当前创建的目标容器所需的交换空间大小以及所述目标容器的目标容器标识;
Swap空间控制模块,基于所述交换空间大小为所述目标容器分配所述电子设备的磁盘中的目标交换空间,确定所述目标交换空间与所述目标容器标识的对应关系,生成交换映射列表;
Swap映射模块,用于存储所述交换映射列表;
所述Swap空间控制模块,还用于基于所述交换映射列表控制所述目标容器对所述目标交换空间的使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010293976.8A CN111522659B (zh) | 2020-04-15 | 2020-04-15 | 一种空间使用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010293976.8A CN111522659B (zh) | 2020-04-15 | 2020-04-15 | 一种空间使用方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522659A true CN111522659A (zh) | 2020-08-11 |
CN111522659B CN111522659B (zh) | 2024-04-19 |
Family
ID=71903149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010293976.8A Active CN111522659B (zh) | 2020-04-15 | 2020-04-15 | 一种空间使用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522659B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114962A (zh) * | 2020-09-04 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种内存分配方法及装置 |
CN113064724A (zh) * | 2021-03-26 | 2021-07-02 | 华控清交信息科技(北京)有限公司 | 一种内存分配管理方法、装置和用于内存分配管理的装置 |
CN116719633A (zh) * | 2022-09-20 | 2023-09-08 | 荣耀终端有限公司 | 管理内存交换分区的方法和电子设备 |
WO2024152705A1 (zh) * | 2023-01-18 | 2024-07-25 | 腾讯科技(深圳)有限公司 | 内存回收方法、装置、设备、介质及产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130055249A1 (en) * | 2011-08-29 | 2013-02-28 | Vmware, Inc. | Virtual machine provisioning in object storage system |
CN105933137A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种资源管理方法、装置及系统 |
CN106484540A (zh) * | 2016-10-20 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种资源配置方法及装置 |
CN106970822A (zh) * | 2017-02-20 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种容器创建方法及装置 |
CN107329829A (zh) * | 2017-06-28 | 2017-11-07 | 快云信息科技有限公司 | 一种开源应用容器引擎的服务资源管控方法 |
CN109697119A (zh) * | 2017-10-20 | 2019-04-30 | 中兴通讯股份有限公司 | 终端内存回收处理方法及装置 |
CN110134496A (zh) * | 2019-05-22 | 2019-08-16 | 中国联合网络通信集团有限公司 | 容器监控方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-04-15 CN CN202010293976.8A patent/CN111522659B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130055249A1 (en) * | 2011-08-29 | 2013-02-28 | Vmware, Inc. | Virtual machine provisioning in object storage system |
CN105933137A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种资源管理方法、装置及系统 |
CN106484540A (zh) * | 2016-10-20 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种资源配置方法及装置 |
CN106970822A (zh) * | 2017-02-20 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种容器创建方法及装置 |
CN107329829A (zh) * | 2017-06-28 | 2017-11-07 | 快云信息科技有限公司 | 一种开源应用容器引擎的服务资源管控方法 |
CN109697119A (zh) * | 2017-10-20 | 2019-04-30 | 中兴通讯股份有限公司 | 终端内存回收处理方法及装置 |
CN110134496A (zh) * | 2019-05-22 | 2019-08-16 | 中国联合网络通信集团有限公司 | 容器监控方法、装置、设备及计算机可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114962A (zh) * | 2020-09-04 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种内存分配方法及装置 |
CN113064724A (zh) * | 2021-03-26 | 2021-07-02 | 华控清交信息科技(北京)有限公司 | 一种内存分配管理方法、装置和用于内存分配管理的装置 |
CN113064724B (zh) * | 2021-03-26 | 2024-06-07 | 华控清交信息科技(北京)有限公司 | 一种内存分配管理方法、装置和用于内存分配管理的装置 |
CN116719633A (zh) * | 2022-09-20 | 2023-09-08 | 荣耀终端有限公司 | 管理内存交换分区的方法和电子设备 |
WO2024152705A1 (zh) * | 2023-01-18 | 2024-07-25 | 腾讯科技(深圳)有限公司 | 内存回收方法、装置、设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111522659B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990540B2 (en) | Memory management method and apparatus | |
CN111522659B (zh) | 一种空间使用方法和装置 | |
EP2195739B1 (en) | System and method to improve memory usage in virtual machines running as hypervisor guests | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112101602A (zh) | 机器人充电分配方法、装置、设备、系统及存储介质 | |
EP3252595A1 (en) | Method and device for running process | |
CN112000463A (zh) | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 | |
CN113674131A (zh) | 硬件加速器设备管理方法、装置及电子设备和存储介质 | |
CN115421909A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN105824705A (zh) | 一种任务分配方法和电子设备 | |
CN113254223B (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
CN110750330A (zh) | 一种虚拟机创建方法、系统、电子设备及存储介质 | |
CN112114958A (zh) | 资源隔离方法、分布式平台、计算机设备和存储介质 | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN109445863B (zh) | 一种基于fpga的数据处理方法、装置、设备及介质 | |
CN111813564B (zh) | 集群资源管理方法、装置及容器集群管理系统 | |
CN111078405B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN113722102A (zh) | 一种内存分配方法及装置 | |
CN109669778B (zh) | 一种用于为运行单元确定并行进程数量的方法及系统 | |
CN111858057B (zh) | 运行内存的分配方法、装置、计算机设备以及存储介质 | |
CN112732449B (zh) | 基于gpu虚拟化技术的显存资源分配方法、装置及设备 | |
CN111294247B (zh) | 一种存储区域的QoS分配方法及系统 | |
CN112000471B (zh) | 内存优化方法及装置 | |
KR102700419B1 (ko) | 전자장치 및 그 제어방법 | |
CN118672968A (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 |