[发明专利]一种基于资源监控的内存分配方法及装置在审
申请号: | 202011495665.6 | 申请日: | 2020-12-17 |
公开(公告)号: | CN112612573A | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 石兴雨 | 申请(专利权)人: | 龙存科技(北京)股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 北京文苑专利代理有限公司 11516 | 代理人: | 于利晓 |
地址: | 100086 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 资源 监控 内存 分配 方法 装置 | ||
本发明提供了一种基于资源监控的内存分配方法及装置,该方法包括:周期性地获取服务器集群中每个服务器的状态,服务器集群中的每个服务器安装有守护进程,守护进程用于管理端获取服务器的状态;内存分配器根据每个服务器的状态和预分配内存集分配内存;服务器的状态包括服务器的内存使用情况,根据上次与当次的内存使用情况确定内存的变化,在内存统计时,更新内存分配器中的预分配内存集,以回收预分配内存。本申请增加了大批量启动虚拟机的效率。
技术领域
本发明涉及一种虚拟化服务,尤其涉及一种基于资源监控的内存分配方法及装置,属于云计算系统领域。
背景技术
在集群虚拟化中,为了使资源最合理利用,在启动虚拟机时,应该选择一个资源最赋闲的服务器来启动虚拟机,而一般内存是虚拟化的核心,所以分配的时候以内存为主。
传统的分配方式是根据现在的虚拟化的内存情况,增加一个内存总锁,每当虚拟机要获取内存资源时,获取总锁,然后经过权重算法算出最优的物理机,启动虚拟机,更改内存,释放总锁。传统实现方式有一个比较大的缺陷,由于虚拟机启动需要一定的时间,所以使用锁的时间会很长,再加上锁的串行性,导致大批量启动虚拟机(暴风启动)时,虚拟机的启动会非常慢,总时间也会非常长。
发明内容
为了解决目前大批量启动虚拟机(暴风启动)时,虚拟机的启动会非常慢,总时间也会非常长的问题,本申请实施例提供了一种基于资源监控的内存分配方法及装置。
第一方面,本申请实施例提供了一种基于资源监控的内存分配方法,包括:
周期性地获取服务器集群中每个服务器的状态,所述服务器集群中的每个服务器安装有守护进程,所述守护进程用于管理端获取服务器的状态;
内存分配器根据每个服务器的状态和预分配内存集分配内存;
所述服务器的状态包括服务器的内存使用情况,根据上次与当次的内存使用情况确定内存的变化,在内存统计时,更新内存分配器中的预分配内存集,以回收预分配内存。
其中,还包括:
记录第一虚拟机预分配内存的分配时间;
检测第一虚拟机是否正常启动,如果没有正常启动,所述第一虚拟机的预分配内存在预设期限后自动回收,所述预设期限自所述第一虚拟机预分配内存的分配时间开始计算。
其中,获取服务器集群中每个服务器的状态,包括:
采用并发的方式获取服务器集群中每个服务器的状态。
其中,所述内存分配器根据每个服务器的状态和预分配内存集分配内存,包括:
使用读写锁来实现内存分配器中的锁;
进入锁以后,根据预分配内存和获取的服务器的状态中内存使用情况,计算每个服务器上剩余多少内存;
根据申请的内存数、每个服务器上的内存权重,选择符合预设条件的服务器;
选择完符合预设条件的服务器后,内存分配器在预分配内存集增加当次内存的信息,内存分配器完成内存分配。
第二方面,本申请提供了一种基于资源监控的内存分配装置,包括:
获取单元,用于周期性地获取服务器集群中每个服务器的状态,所述服务器集群中的每个服务器安装有守护进程,所述守护进程用于管理端获取服务器的状态;
内存分配器,用于根据每个服务器的状态和预分配内存集分配内存;
更新单元,用于所述服务器的状态包括服务器的内存使用情况,根据上次与当次的内存使用情况确定内存的变化,在内存统计时,更新内存分配器中的预分配内存集,以回收预分配内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙存科技(北京)股份有限公司,未经龙存科技(北京)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011495665.6/2.html,转载请声明来源钻瓜专利网。