CN105279028B - 一种内存资源分配方法及装置 - Google Patents
一种内存资源分配方法及装置 Download PDFInfo
- Publication number
- CN105279028B CN105279028B CN201510822763.9A CN201510822763A CN105279028B CN 105279028 B CN105279028 B CN 105279028B CN 201510822763 A CN201510822763 A CN 201510822763A CN 105279028 B CN105279028 B CN 105279028B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- memory source
- source
- limitation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000009826 distribution Methods 0.000 title claims abstract description 27
- 238000003860 storage Methods 0.000 claims abstract description 34
- 230000014509 gene expression Effects 0.000 claims description 4
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 239000011800 void material Substances 0.000 description 6
- 238000000151 deposition Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Abstract
本发明公开了一种内存资源分配方法及装置,该方法包括:当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,第一虚拟机为优先分配内存资源的虚拟机,第二虚拟机为不优先分配内存资源的虚拟机;基于每个第一虚拟机占用的内存资源及每个第二虚拟机占用的内存资源按照预设原则进行计算,得到每个第二虚拟机的限制内存;将Cgroups中与每个第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。通过本申请公开的上述技术方案,通过Cgroups实现内存资源的优先分配。
Description
技术领域
本发明涉及云计算技术领域,更具体地说,涉及一种内存资源分配方法及装置。
背景技术
Cgroups(control groups,控制族群)是一种可以限制、记录及隔离进程组所使用的物理资源的机制。具体来说,其可为系统中所运行进程的用户定义族群分配资源,如CPU空间、系统内存资源、网络带宽等或者这些资源的组合,还可以通过监控配置的Cgroups拒绝Cgroups访问某些资源,甚至可以在运行的系统中动态配置用户的Cgroups等。
Cgroups提供了以下四大功能:资源限制、优先级分配、资源统计及进程控制。然而,在优先级分配中,其只包含有分配CPU时间片数量以及硬盘IO带宽大小的优先级设置,并没有实现关于内存资源优先分配方面的功能,即,现有技术中使用Cgroups无法实现内存资源的优先分配。
综上所述,现有技术中的Cgroups存在无法实现内存资源的优先分配的问题。
发明内容
本发明的目的是提供一种内存资源分配方法及装置,以使用Cgroups实现内存资源的优先分配。
为了实现上述目的,本发明提供如下技术方案:
一种内存资源分配方法,包括:
当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,所述第一虚拟机为优先分配内存资源的虚拟机,所述第二虚拟机为不优先分配内存资源的虚拟机;
基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存;
将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。
优选的,基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存,包括:
确定任一第二虚拟机为目标虚拟机;
按照下列公式计算所述目标虚拟机的限制内存:
其中,Lvmk表示所述目标虚拟机的限制内存,Mvmk表示所述目标虚拟机占用的内存资源,Mp表示全部虚拟机可占用的总内存资源,表示每个所述第一虚拟机占用的内存资源的总和,表示每个所述第二虚拟机占用的内存资源的总和。
优选的,将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存,包括:
确定所述目标虚拟机在Cgroups中对应的子结构为目标子结构;
将所述目标子结构中包含的soft_limit_in_bytes参数的值设置为所述目标虚拟机的限制内存。
优选的,还包括:
获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
优选的,还包括:
实时接收外界输入的优先级设置指令,依据所述优先级设置指令确定与所述优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
一种内存资源分配装置,包括:
获取模块,用于当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,所述第一虚拟机为优先分配内存资源的虚拟机,所述第二虚拟机为不优先分配内存资源的虚拟机;
计算模块,用于基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存;
设置模块,用于将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。
优选的,所述计算模块包括:
第一确定单元,用于确定任一第二虚拟机为目标虚拟机;
计算单元,用于按照下列公式计算所述目标虚拟机的限制内存:
其中,Lvmk表示所述目标虚拟机的限制内存,Mvmk表示所述目标虚拟机占用的内存资源,Mp表示可占用总内存资源,表示每个所述第一虚拟机占用的内存资源的总和,表示每个所述第二虚拟机占用的内存资源的总和。
优选的,所述设置模块包括:
第二确定单元,用于确定所述目标虚拟机在Cgroups中对应的子结构为目标子结构;
设置单元,用于将所述目标子结构中包含的soft_limit_in_bytes参数的值设置为所述目标虚拟机的限制内存。
优选的,还包括:
预备模块,用于获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
优选的,还包括:
优先级设置模块,用于实时接收外界输入的优先级设置指令,依据所述优先级设置指令确定与所述优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
本发明提供的一种内存资源分配方法及装置,该方法包括:当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,所述第一虚拟机为优先分配内存资源的虚拟机,所述第二虚拟机为不优先分配内存资源的虚拟机;基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存;将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。通过本申请公开的上述技术方案,当出现内存资源竞争,即全部虚拟机可用的内存资源小于全部虚拟机实际需占用的内存资源时,需要基于优先分配内存资源的虚拟机占用的内存资源,及不优先分配内存资源的虚拟机占用的内存资源按照预设原则计算每个不优先分配内存资源的虚拟机的限制内存,将Cgroups中对应的内存资源限制参数设置成对应虚拟机的限制内存,由此,通过限制不优先分配内存资源的虚拟机所占用的内存资源,使得全部虚拟机可用的内存资源小于或者等于全部虚拟机实际占用的内存资源,从而通过Cgroups实现内存资源的优先分配。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种内存资源分配方法的流程图;
图2为本发明实施例提供的一种内存资源分配装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种内存资源分配方法的流程图,可以包括以下步骤:
S11:当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,第一虚拟机为优先分配内存资源的虚拟机,第二虚拟机为不优先分配内存资源的虚拟机。
出现内存资源竞争,具体来说,即全部虚拟机所需要占用的内存资源大于全部虚拟机可以占用的内存资源,此时,会造成不同的虚拟机对于内存资源的抢占,进而出现内存资源竞争。另外,第一虚拟机和第二虚拟机的数量均可根据实际需要进行确定,第一虚拟机为优先分配内存资源的虚拟机,即在出现内存资源竞争时,优先为第一虚拟机分配内存资源;第二虚拟机为不优先分配内存资源的虚拟机,即在出现内存资源竞争时,不优先为第二虚拟机分配内存资源。
S12:基于每个第一虚拟机占用的内存资源及每个第二虚拟机占用的内存资源按照预设原则进行计算,得到每个第二虚拟机的限制内存。
其中,预设原则可以根据实际需要进行确定,所计算出的限制内存,即为了解决内存资源竞争的问题,而对第二虚拟机所占用的内存资源进行限制,使之所占用的内存资源不大于对应的限制内存。
S13:将Cgroups中与每个第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。
通过将Cgroups中对应每个第二虚拟机的内存资源限制参数的值设置为该第二虚拟机的限制内存,Cgroups可通过内存资源限制参数的值对对应的第二虚拟机所占用的内存资源进行限制,通常分两种情况进行处理,一种为任一第二虚拟机所占用的内存资源大于限制内存,此时,则使用Cgroups通过内存资源限制参数将该第二虚拟机所占用的内存资源削减至限制内存,一种为任一第二虚拟机所占用的内存资源等于或者小于限制内存,则不对该第二虚拟机所占用的内存资源进行任何处理。另外,对于优先分配内存资源的虚拟机,即第一虚拟机的内存资源不做任何处理,以保证其稳定工作。
通过本申请公开的上述技术方案,当出现内存资源竞争,即全部虚拟机可用的内存资源小于全部虚拟机实际需占用的内存资源时,需要基于优先分配内存资源的虚拟机占用的内存资源,及不优先分配内存资源的虚拟机占用的内存资源按照预设原则计算每个不优先分配内存资源的虚拟机的限制内存,将Cgroups中对应的内存资源限制参数设置成对应虚拟机的限制内存,即对内存资源进行软限制,由此,通过限制不优先分配内存资源的虚拟机所占用的内存资源,使得全部虚拟机可用的内存资源小于或者等于全部虚拟机实际占用的内存资源,从而通过Cgroups实现内存资源的优先分配。
另外,Cgroups中的很多资源控制参数可以有效地限制虚拟机所用资源,达到精确管理虚拟机的目的,本申请通过分析日常虚拟机管理中所遇到的问题,提出内存资源优先分配这一功能需求,根据Cgroups的特性,利用Cgroups中对应的参数来限制虚拟机的内存资源使用情况,有利于对虚拟机进行可靠地管理和维护,并且经过这一技术方案还可以衍生出更多虚拟机内存资源管理功能,进而更加方便有效地对虚拟机进行管理。
上述实施例提供的一种内存资源分配方法中,基于每个第一虚拟机占用的内存资源及每个第二虚拟机占用的内存资源按照预设原则进行计算,得到每个第二虚拟机的限制内存,可以包括:
确定任一第二虚拟机为目标虚拟机;
按照下列公式计算目标虚拟机的限制内存:
其中,Lvmk表示目标虚拟机的限制内存,Mvmk表示目标虚拟机占用的内存资源,Mp表示可占用总内存资源,表示每个第一虚拟机占用的内存资源的总和,表示每个第二虚拟机占用的内存资源的总和。
按照上述公式能够计算出任一第二虚拟机的限制内存,进而通过限制内存对该第二虚拟机占用的内存资源按一定的分配比例进行限制,进而缓解内存资源竞争的问题,保证全部虚拟机实际占用的内存资源不大于全部虚拟机可占用的内存资源(即系统物理机可提供的总内存资源)。
具体的,将Cgroups中与每个第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存,可以包括:
确定目标虚拟机在Cgroups中对应的子结构为目标子结构;
将目标子结构中包含的soft_limit_in_bytes参数的值设置为目标虚拟机的限制内存。
针对虚拟机的资源控制需要注意,在libvirt中定义的虚拟机的资源控制需要在/sys/fs/Cgroups/memory/machine.slice/machine-qemu\\x2vmname.scope/对应的目录下执行,这是由于Cgroups的API以一个伪文件系统的方式实现,即用户可以通过文件操作实现Cgroupss的组织管理的。因此,上述步骤具体可以为:定位目标虚拟机对应的Cgroups子结构,即目标子结构,由于限制虚拟机和限制普通进程并不相同,因此无法将虚拟机中的进程一一写入Cgroups的tasks中以进行资源限制;而是当虚拟机启动时Cgroups会在对应的每一个子系统Cgroups.memory中创建一个名为machine.slice的子目录,子目录中还会有对应虚拟机名字的子目录,即目标子结构,通过对该子目录的各项参数进行调整,便可以达到利用Cgroups来限制虚拟机资源的使用。因此,本申请中通过对目标子结构中的soft_limit_in_bytes软限制这一参数的值的设置来限制虚拟机占用的内存资源,该参数的功能是阻止进程使用超过限额(即限制内存)的内存资源。在系统内存资源不足时,会优先回收超过限额的进程占用的内存资源,使之向限制内存靠拢。因此在出现内存资源竞争时,通过动态调节不优先分配内存资源的虚拟机对应的soft_limit_in_bytes这一参数,来实现内存资源优先分配功能。
上述实施例提供的一种内存资源分配方法中,还可以包括:
获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
在将任一虚拟机确定为第一虚拟机或第二虚拟机时,需要获取该虚拟机的内存压力敏感度,通过根据实际需要设置的预设值,确定其压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,其内存压力敏感度小于预设值的虚拟机为第二虚拟机。通过预先根据内存压力敏感度对虚拟机的分类,能够保证,出现内存资源竞争时,内存资源压力敏感型的虚拟机可用不受到内存资源压力的干扰,而是通过削减其他虚拟机的占用内存资源来缓解内存资源竞争的问题。从而达到在缓解内存资源竞争的同时减少了由于内存资源竞争产生的压力导致虚拟机无法正常运行的问题。
另外,在确定第一虚拟机和第二虚拟机后,可以对第一虚拟机进行标注,而不对第二虚拟机进行标注,由此,在确认任一虚拟机为哪种虚拟机时,仅通过其是否具有对应标注即可确认;也可以分别对第一虚拟机及第二虚拟机标注不同内容,由此,在确认任一虚拟机为哪种虚拟机时,通过其标注的内容确认即可,当然,其他的用于对第一虚拟机及第二虚拟机进行区分的方式均在本发明的保护范围之内。
上述实施例提供的一种内存资源分配方法中,还可以包括:
实时接收外界输入的优先级设置指令,依据优先级设置指令确定与优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
通过输入优先级设置指令,可以根据用户或者工作人员的实际需要对虚拟机的种类进行改变,即,人为设置任一虚拟机为第一虚拟机或者第二虚拟机,由此,完善了本发明的一种内存资源分配方法的功能,提高了用户体验。
与上述方法实施例相对应,本发明实施例还提供了一种内存资源分配装置,如图2所示,可以包括:
获取模块21,用于当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,第一虚拟机为优先分配内存资源的虚拟机,第二虚拟机为不优先分配内存资源的虚拟机;
计算模块22,用于基于每个第一虚拟机占用的内存资源及每个第二虚拟机占用的内存资源按照预设原则进行计算,得到每个第二虚拟机的限制内存;
设置模块23,用于将Cgroups中与每个第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存。
通过本申请公开的上述技术方案,当出现内存资源竞争,即全部虚拟机可用的内存资源小于全部虚拟机实际需占用的内存资源时,需要基于优先分配内存资源的虚拟机占用的内存资源,及不优先分配内存资源的虚拟机占用的内存资源按照预设原则计算每个不优先分配内存资源的虚拟机的限制内存,将Cgroups中对应的内存资源限制参数设置成对应虚拟机的限制内存,即对内存资源进行软限制,由此,通过限制不优先分配内存资源的虚拟机所占用的内存资源,使得全部虚拟机可用的内存资源小于或者等于全部虚拟机实际占用的内存资源,从而通过Cgroups实现内存资源的优先分配。
其中,上述实施例提供的一种内存资源分配装置可以是支持Hypervisor层实现对虚拟机的资源管理的装置。
上述实施例提供的一种内存资源分配装置中,计算模块可以包括:
第一确定单元,用于确定任一第二虚拟机为目标虚拟机;
计算单元,用于按照下列公式计算目标虚拟机的限制内存:
其中,Lvmk表示目标虚拟机的限制内存,Mvmk表示目标虚拟机占用的内存资源,Mp表示可占用总内存资源,表示每个第一虚拟机占用的内存资源的总和,表示每个第二虚拟机占用的内存资源的总和。
上述实施例提供的一种内存资源分配装置中,设置模块可以包括:
第二确定单元,用于确定目标虚拟机在Cgroups中对应的子结构为目标子结构;
设置单元,用于将目标子结构中包含的soft_limit_in_bytes参数的值设置为目标虚拟机的限制内存。
上述实施例提供的一种内存资源分配装置中,还可以包括:
预备模块,用于获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
上述实施例提供的一种内存资源分配装置中,还可以包括:
优先级设置模块,用于实时接收外界输入的优先级设置指令,依据优先级设置指令确定与优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
由于本发明实施例提供的一种内存资源分配装置为与上述实施例提供的一种内存资源分配方法相对应,因此,对于本发明提供的一种内存资源分配装置的实施例中的具体说明请参见上述一种内存资源分配方法的实施例中对应内容的说明。
另外需要说明的是,以下为对本发明实施例提供的一种内存资源分配方法及装置的进行试验验证其效果的过程,具体为:1、物理机总内存资源4G,配置三台虚拟机,虚拟机A为第一虚拟机,需占用的内存资源为2G,虚拟机B为第二虚拟机,需占用的内存资源为2G,虚拟机C为第二虚拟机,需占用的内存资源为1G;2、启动虚拟机A和虚拟机B,并给虚拟机A和B内存资源加压100%;3、待虚拟机A及虚拟机B的内存资源占用率达到100%时,停止对其进行加压;4、启动虚拟机C,在为期内存资源加压的过程产生内存资源竞争;5、一段时间后观察三台虚拟机的内存资源占用情况,可见,开始时虚拟机A和B的内存资源占用率达到了100%,启动虚拟机C一段时间后,虚拟机A占用的内存资源不变,虚拟机B占用的内存资源减少。可见,本申请实施例提供的一种内存资源分配方法及装置能够实现及限制内存并缓解内存资源竞争的功能。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种内存资源分配方法,其特征在于,包括:
当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,所述第一虚拟机为优先分配内存资源的虚拟机,所述第二虚拟机为不优先分配内存资源的虚拟机;
基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存;
将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存;
基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存,包括:
确定任一第二虚拟机为目标虚拟机;
按照下列公式计算所述目标虚拟机的限制内存:
其中,Lvmk表示所述目标虚拟机的限制内存,Mvmk表示所述目标虚拟机占用的内存资源,Mp表示全部虚拟机可占用的总内存资源,表示每个所述第一虚拟机占用的内存资源的总和,表示每个所述第二虚拟机占用的内存资源的总和。
2.根据权利要求1所述的方法,其特征在于,将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存,包括:
确定所述目标虚拟机在Cgroups中对应的子结构为目标子结构;
将所述目标子结构中包含的soft_limit_in_bytes参数的值设置为所述目标虚拟机的限制内存。
3.根据权利要求1所述的方法,其特征在于,还包括:
获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
实时接收外界输入的优先级设置指令,依据所述优先级设置指令确定与所述优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
5.一种内存资源分配装置,其特征在于,包括:
获取模块,用于当出现内存资源竞争时,获取至少一个第一虚拟机中每个第一虚拟机占用的内存资源及至少一个第二虚拟机中每个第二虚拟机占用的内存资源,其中,所述第一虚拟机为优先分配内存资源的虚拟机,所述第二虚拟机为不优先分配内存资源的虚拟机;
计算模块,用于基于每个所述第一虚拟机占用的内存资源及每个所述第二虚拟机占用的内存资源按照预设原则进行计算,得到每个所述第二虚拟机的限制内存;
设置模块,用于将Cgroups中与每个所述第二虚拟机对应的控制该第二虚拟机占用的内存资源的内存资源限制参数的值设置为该第二虚拟机的限制内存;
所述计算模块包括:
第一确定单元,用于确定任一第二虚拟机为目标虚拟机;
计算单元,用于按照下列公式计算所述目标虚拟机的限制内存:
其中,Lvmk表示所述目标虚拟机的限制内存,Mvmk表示所述目标虚拟机占用的内存资源,Mp表示可占用总内存资源,表示每个所述第一虚拟机占用的内存资源的总和,表示每个所述第二虚拟机占用的内存资源的总和。
6.根据权利要求5所述的装置,其特征在于,所述设置模块包括:
第二确定单元,用于确定所述目标虚拟机在Cgroups中对应的子结构为目标子结构;
设置单元,用于将所述目标子结构中包含的soft_limit_in_bytes参数的值设置为所述目标虚拟机的限制内存。
7.根据权利要求5所述的装置,其特征在于,还包括:
预备模块,用于获取每个虚拟机的内存压力敏感度,并确定其内存压力敏感度大于或者等于预设值的虚拟机为第一虚拟机,确定其内存压力敏感度小于预设值的虚拟机为第二虚拟机。
8.根据权利要求5至7任一项所述的装置,其特征在于,还包括:
优先级设置模块,用于实时接收外界输入的优先级设置指令,依据所述优先级设置指令确定与所述优先级设置指令对应的虚拟机为第一虚拟机或者第二虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510822763.9A CN105279028B (zh) | 2015-11-24 | 2015-11-24 | 一种内存资源分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510822763.9A CN105279028B (zh) | 2015-11-24 | 2015-11-24 | 一种内存资源分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279028A CN105279028A (zh) | 2016-01-27 |
CN105279028B true CN105279028B (zh) | 2018-09-07 |
Family
ID=55148079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510822763.9A Active CN105279028B (zh) | 2015-11-24 | 2015-11-24 | 一种内存资源分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105279028B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977264B (zh) * | 2016-10-24 | 2022-06-10 | 阿里巴巴集团控股有限公司 | 一种虚拟机内存资源的调度方法以及装置 |
CN114077493A (zh) * | 2020-08-21 | 2022-02-22 | 荣耀终端有限公司 | 一种资源分配方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309698A (zh) * | 2012-03-16 | 2013-09-18 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机内存管理系统及方法 |
CN103324535A (zh) * | 2012-03-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 一种计算资源的分配方法和装置 |
CN103324516A (zh) * | 2013-07-04 | 2013-09-25 | 曙光信息产业(北京)有限公司 | 基于虚拟化驱动的硬件管理方法和装置 |
CN104077191A (zh) * | 2014-07-18 | 2014-10-01 | 广州金山网络科技有限公司 | 一种用于管理内存资源的方法及装置 |
-
2015
- 2015-11-24 CN CN201510822763.9A patent/CN105279028B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309698A (zh) * | 2012-03-16 | 2013-09-18 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机内存管理系统及方法 |
CN103324535A (zh) * | 2012-03-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 一种计算资源的分配方法和装置 |
CN103324516A (zh) * | 2013-07-04 | 2013-09-25 | 曙光信息产业(北京)有限公司 | 基于虚拟化驱动的硬件管理方法和装置 |
CN104077191A (zh) * | 2014-07-18 | 2014-10-01 | 广州金山网络科技有限公司 | 一种用于管理内存资源的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105279028A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170201574A1 (en) | Method, system, and device for allocating resources in a server | |
CN105052074B (zh) | 用于提供虚拟化直径网络架构以及用于将业务量路由至动态实例化的直径资源实例的方法、系统和计算机可读介质 | |
CN103502944B (zh) | 虚拟机内存调整方法和设备 | |
US9178763B2 (en) | Weight-based collocation management | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
JP2015514270A5 (zh) | ||
CN103729236B (zh) | 一种限制云计算用户资源使用额度的方法 | |
WO2013138587A8 (en) | Systems, methods and devices for management of virtual memory systems | |
CN110661824B (zh) | 分布式集群中服务器的流量调控方法及存储介质 | |
CN112003797B (zh) | 一种虚拟化dpdk网络性能提高方法、系统、终端及存储介质 | |
CN110532067A (zh) | 事件处理方法、装置、设备及存储介质 | |
CN105592110A (zh) | 一种资源调度方法及装置 | |
CN104331659A (zh) | 一种关键应用主机系统资源应用隔离的设计方法 | |
CN105279028B (zh) | 一种内存资源分配方法及装置 | |
US20150363220A1 (en) | Virtual computer system and data transfer control method for virtual computer system | |
Musleh et al. | Bridging the virtualization performance gap for HPC using SR-IOV for InfiniBand | |
CN106970841A (zh) | 一种基于云计算的资源限制及动态调整方法 | |
CN105045667B (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
CN106686039A (zh) | 一种云计算系统中的资源调度方法及装置 | |
CN109510834A (zh) | 一种安全策略下发方法及装置 | |
Lu et al. | vFair: latency-aware fair storage scheduling via per-IO cost-based differentiation | |
US20160259922A1 (en) | Software license management method and system | |
CN106775925B (zh) | 一种虚拟机cpu的限额处理方法和装置 | |
CN109729113A (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
CN105183563B (zh) | 一种面向关键任务计算机的cpu资源动态自配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |