一种基于内存和Swap空间的虚拟机内存动态管理系统及方法技术方案

技术编号:16779067 阅读:283 留言:0更新日期:2017-12-12 23:34
本发明专利技术涉及虚拟机内存管理领域,具体涉及一种基于内存和Swap空间的虚拟机内存动态管理系统及方法,本发明专利技术为了解决现有的虚拟机内存调度算法在使用Swap空间时会造成系统性能损耗,并且在虚拟机内存监控中仅使用带内监控,使得虚拟机运行性能降低、安全隐患高的缺点,而提出一种基于内存和Swap空间的虚拟机内存动态管理系统及方法。本发明专利技术的系统包括设置在特权域中的监控模块、计算模块以及执行模块,其中监控模块用于向虚拟机发出待读取数据的地址,并接收虚拟机返回的待读取数据;还用于将待读取数据发送至计算模块。计算模块用于计算应当为虚拟机分配的目标内存大小。执行模块用于根据目标内存大小,调节虚拟机的内存。本发明专利技术适用于内存动态管理工具。

A virtual machine memory dynamic management system and method based on memory and Swap space

The invention relates to the field of virtual machine memory management, in particular to a memory and Swap space based on virtual machine dynamic memory management system and method of the invention, in order to solve the virtual machine memory scheduling algorithm existing in the use of Swap space will cause system performance loss, and use only the band monitoring in the virtual machine memory monitor, the the performance of virtual machine, reduce security risks high, and put forward a kind of memory and Swap space based on virtual machine dynamic memory management system and method. The system of the invention comprises a monitoring module, set in the privileged domain in a computation module and execution module, wherein the monitoring module is used for sending data to be read to the address of the virtual machine, virtual machine receives the read data and return to; to be read is also used to send data to the calculation module. The computing module is used to calculate the size of the target memory that should be allocated for the virtual machine. The execution module regulates the memory of the virtual machine based on the size of the target memory. The invention is suitable for the memory dynamic management tool.

【技术实现步骤摘要】
一种基于内存和Swap空间的虚拟机内存动态管理系统及方法
本专利技术涉及虚拟机内存管理领域,具体涉及一种基于内存和Swap空间的虚拟机内存动态管理系统及方法。
技术介绍
虚拟机内存动态管理的研究主要分为内存管理机制和动态调度算法,其中内存管理机制包括内存监控方式和内存调度工具,动态调度算法是指在虚拟机运行过程中对其进行内存分配的决策机构。内存管理机制中的内存监控方式主要有传统的内部监控和当下流行的带外监控,内部监控是指在虚拟机内部安装信息采集插件,将信息发送到外部,这往往会带来一些安全隐患,并且一定程度上降低虚拟机运行性能。带外监控是指在虚拟机外部,直接来获取虚拟机内存等信息,这种方法比较安全高效,更多的应用在虚拟机监控的研究中,却很少出现在虚拟机内存管理的架构中。内存调度工具比较流行的是气球驱动机制,这是一个运行在虚拟机端的程序,由虚拟机管理器直接管理。在虚拟机内存动态调度算法的研究中,自适应的内存调度算法一般都是根据虚拟机的内存状态做出相应决策,但是很少考虑到Swap空间的使用量带来的影响。
技术实现思路
本专利技术的目的是为了解决现有的虚拟机内存调度算法在使用Swap空间时会造成系统性能损耗,并且在虚拟机内存监控中仅使用带内监控,使得虚拟机运行性能降低、安全隐患高的缺点,而提出一种基于内存和Swap空间的虚拟机内存动态管理系统及方法。一种基于内存和Swap空间的虚拟机内存动态管理系统,包括设置在特权域中的监控模块、计算模块以及执行模块,其中,监控模块,用于向虚拟机发出待读取数据的地址,并接收虚拟机返回的待读取数据;还用于将待读取数据发送至计算模块。计算模块,用于在接收到待读取数据后,计算应当为虚拟机分配的目标内存大小。执行模块,用于根据所述目标内存大小,调节虚拟机的内存。一种基于内存和Swap空间的虚拟机内存动态管理方法,包括:步骤1、在特权域中,通过内存信息采集工具向虚拟机发出待读取数据的地址,并通过内存信息采集工具接收虚拟机返回的待读取数据;步骤2、在接收到待读取数据后,计算应当为虚拟机分配的目标内存大小;步骤3、根据所述目标内存大小,调节虚拟机的内存。本专利技术的有益效果是:1、降低了使用Swap空间时造成的系统性能损耗;2、使用带外监控,不会降低虚拟机运行性能,并提高安全性;3、本专利技术能够提高内存型,磁盘型和CPU型的测试程序的性能,以不进行内存调节的情况为标准,本专利技术能够提升2倍至6倍的性能,以现有技术的Global-scheduling算法相比,本专利技术能够提升性能高达20%。附图说明图1为本专利技术的基于内存和Swap空间的虚拟机内存动态管理系统的原理示意图;图2(a)为静态负载实验结果中,目标内存变化对比图;图2(b)为静态负载实验结果中,Swap空间使用量变化对比图;图3(a)为内存调度算法在总内存不能满足总负载情况下的目标内存变化对比图;图3(b)为内存调度算法在总内存不能满足总负载情况下的Swap空间使用量变化对比图;图4为本专利技术的系统与现有技术的系统的性能对比图。具体实施方式具体实施方式一:本实施方式的基于内存和Swap空间的虚拟机内存动态管理系统,如图1所示,包括设置在特权域中的监控模块、计算模块以及执行模块,其中:监控模块,用于向虚拟机发出待读取数据的地址,并接收虚拟机返回的待读取数据;还用于将待读取数据发送至计算模块。计算模块,用于在接收到待读取数据后,计算应当为虚拟机分配的目标内存大小。执行模块,用于根据所述目标内存大小,调节虚拟机的内存。由于在虚拟化环境中,虚拟机在创建之初就被分配了固定的内存空间,会造成部分虚拟机在使用过程中内存不足而使用了Swap空间,这会给系统带来性能损耗,而部分虚拟机有很多空闲内存,因此本专利技术的目的是通过设计一个基于内存和Swap状态的虚拟机内存的动态管理,使得能够合理在虚拟机之间调度内存,充分的利用内存资源,同时提高虚拟化服务的质量。图1示出的原理图为一个循环的操作系统,主要包括三个单元:监控单元,计算单元和执行单元。这三个单元都部署在特权域中。首先,监控单元监控每个虚拟机的信息,这里我们虚拟机系统以Ubuntu14.04为例,其内核3.13.0-95-geniric,根据后面内存管理算法的设计,我们需要获取虚拟机的信息有:总内存大小,空闲内存大小,总Swap空间大小,空闲Swap空间大小,buffer和cache数据,这里我们统称它们为内存信息。然后,计算单元根据监控单元获取的内存信息来计算每个虚拟机下一时刻的目标内存,也就是下一步应该为他们分配的内存。最后,执行单元根据计算结果为每个虚拟机进行内存调整,从而达到他们的目标内存。由于现有技术的内存动态管理往往使用带内监控,在内部安装信息采集模块,将采集到的信息发送到外部,达到监控效果。但是这种方法往往存在一些隐患,当被监控的虚拟机经受攻击、恶意程序的干扰或者有意识的去关闭内部信息采集模块,采集模块进程都会被终止,造成信息采集失败。具体实施方式二:本实施方式与具体实施方式一不同的是:监控模块为LibVMI工具。在实施过程中分别尝试使用Libvirt和LibVMI来采集内存信息,但是由于Libvirt中采集信息的接口并不能在Xen虚拟机中使用,而且该接口也无法获取虚拟机系统的buffer和cache的大小,因此最终采用LibVMI进行带外采集。其它步骤及参数与具体实施方式一相同。具体实施方式三:本实施方式与具体实施方式一或二不同的是:计算模块具体包括:第一计算单元,用于当时,判断活跃内存最大的虚拟机的活跃内存Tm是否等于所有虚拟机的活跃内存平均值其中Ti为第i个虚拟机的活跃内存;N为所有运行虚拟机的总内存量。若Tm与不相等,则虚拟机下一时刻的目标内存分配参数τ的计算公式为若此时计算出的τ值小于0,则将τ值赋为0;若此时计算出的τ值大于1,则将τ值赋为1;其中ξ为根据经验设置的预留空间;若Tm与相等,则将τ值赋为1。将确定后的τ值带入公式求得目标内存Nti。第二计算单元,用于当时,对每一个虚拟机根据公式计算初步目标内存Nti′;其中N′=N-n·x,Ti′=Ti-x,x为预先设置的为每个虚拟机分配的最小内存。还用于统计所有初步目标内存为负数的虚拟机的总初步目标内存量的绝对值Seat。还用于将Nti′进行处理,将处理后的值记为Nti″,如果Nti′<0,那么令Nti″=0;如果Nti′>0,那么令Nti″=Nti′。还用于根据公式计算编号为i的虚拟机应该归还的内存量Seati;其中N″为初步目标内存为正值的虚拟机的总初步目标内存。还用于根据公式Nti=Nti″-Seati+x求得目标内存Nti。本实施方式的有益效果主要体现在第二计算单元,以往的内存动态分配方法在总内存不满足总负载时,很容易出现部分虚拟机负载量非常大,而部分虚拟机负载量非常小,这样的差距就会造成负载量小的虚拟机会被分配不合理的内存量的情况,而本专利技术通过席位分配算法证每个虚拟机可以被分配到最小内存,保证了虚拟机的正常运行。其它步骤及参数与具体实施方式一或二相同。具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:第一计算单元中,根据经验设置的预留空间ξ为100MB至150MB;第二计算单元中,预先设置的为每个虚拟机分配本文档来自技高网...
一种基于内存和Swap空间的虚拟机内存动态管理系统及方法

【技术保护点】
一种基于内存和Swap空间的虚拟机内存动态管理系统,其特征在于,包括设置在特权域中的监控模块、计算模块以及执行模块,其中,监控模块,用于向虚拟机发出待读取数据的地址,并接收虚拟机返回的待读取数据;还用于将待读取数据发送至计算模块;计算模块,用于在接收到待读取数据后,计算应当为虚拟机分配的目标内存大小;执行模块,用于根据所述目标内存大小,调节虚拟机的内存。

【技术特征摘要】
1.一种基于内存和Swap空间的虚拟机内存动态管理系统,其特征在于,包括设置在特权域中的监控模块、计算模块以及执行模块,其中,监控模块,用于向虚拟机发出待读取数据的地址,并接收虚拟机返回的待读取数据;还用于将待读取数据发送至计算模块;计算模块,用于在接收到待读取数据后,计算应当为虚拟机分配的目标内存大小;执行模块,用于根据所述目标内存大小,调节虚拟机的内存。2.根据权利要求1所述的基于内存和Swap空间的虚拟机内存动态管理系统,其特征在于:所述监控模块为LibVMI工具。3.根据权利要求1或2所述的基于内存和Swap空间的虚拟机内存动态管理系统,其特征在于,计算模块具体包括:第一计算单元,用于当时,判断活跃内存最大的虚拟机的活跃内存Tm是否等于所有虚拟机的活跃内存平均值其中Ti为第i个虚拟机的活跃内存;N为所有运行虚拟机的总内存量;n为虚拟机数量;若Tm与不相等,则虚拟机下一时刻的目标内存分配参数τ的计算公式为若此时计算出的τ值小于0,则将τ值赋为0;若此时计算出的τ值大于1,则将τ值赋为1;其中ξ为根据经验设置的预留空间;若Tm与相等,则将τ值赋为1;将确定后的τ值带入公式求得目标内存Nti;第二计算单元,用于当时,对每一个虚拟机根据公式计算初步目标内存Nti′;其中N′=N-n·x,Ti′=Ti-x,x为预先设置的为每个虚拟机分配的最小内存;还用于统计所有初步目标内存为负数的虚拟机的总初步目标内存量的绝对值Seat;还用于将Nti′进行处理,将处理后的值记为Nti″,如果Nti′<0,那么令Nti″=0;如果Nti′>0,那么令Nti″=Nti′。还用于根据公式计算编号为i的虚拟机应该归还的内存量Seati;其中N″为初步目标内存为正值的虚拟机的总初步目标内存;还用于根据公式Nti=Nti″-Seati+x求得目标内存Nti。4.根据权利要求3所述的基于内存和Swap空间的虚拟机内存动态管理系统,其特征在于:第一计算单元中,根据经验设置的预留空间ξ为100MB至150MB;第二计算单元中,预先设置的为每个虚拟机分配的最小内存x为150MB。5...

【专利技术属性】
技术研发人员:张伟哲何慧王德胜谢虎成刘亚维余翔湛郝萌鲁刚钊白恩慈
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1