首页 理论教育 虚拟机内存调整机制解决方案

虚拟机内存调整机制解决方案

时间:2023-10-19 理论教育 版权反馈
【摘要】:虚拟机基本的内存管理技术就是调整虚拟机实际占用内存大小,也是动态内存管理技术的基础。虚拟机可用物理内存紧张时,操作系统可以使用自身的内存管理算法,而不是由虚拟机管理程序来决定。但是气球驱动依赖于虚拟机操作系统,其物理内存伸缩范围也受制于初始物理内存大小,所以气球驱动虽然简单灵活,但是也存在伸缩范围不足的情况。

虚拟机内存调整机制解决方案

虚拟机基本的内存管理技术就是调整虚拟机实际占用内存大小,也是动态内存管理技术的基础。

(1)虚拟机内存换页

虚拟机内存换页技术是指当物理主机内存紧张时,会将虚拟机的部分内存页面换到专门在硬盘为每个虚拟机开辟的换页空间。类似于传统操作系统的虚拟内存技术。这种技术完全运行于虚拟机管理层,属于完全虚拟化。虚拟机管理程序内存换页技术是一种最直接的机制,可以将某个虚拟机的所有内存换出到硬盘上。但是其主要问题有:

1)虚拟机管理程序不了解虚拟机内的应用程序使用情况,可能导致虚拟机管理程序与虚拟机操作系统自身的换页策略冲突,影响虚拟机性能。

2)已经被虚拟机管理程序换出到硬盘的页面,由于前一问题可能出现连续的在内存和磁盘间换页,引起页面颠簸问题。

3)当虚拟机访问被换出到硬盘的页面时,虚拟机会先被挂起,直到所需页面从硬盘换回到内存。这种高延迟会明显影响虚拟机性能。

(2)气球驱动技术(www.xing528.com)

气球驱动最早由Waldspurger[22]提出,现已广泛地应用于主流虚拟化产品中。气球驱动是半虚拟化驱动的形式,除去气球驱动所占有内存,剩下为虚拟机实际拥有内存。所以虚拟机内存监控软件就可以通过对气球驱动所占内存大小的改变,来调整虚拟机可用内存。

虚拟机管理程序需要从虚拟机回收内存时,安装在虚拟机的气球驱动就会“膨胀”,即向操作系统申请物理内存,气球驱动随后会将申请到的物理内存页地址通知给虚拟机管理器,虚拟机管理器将对应页面的P2M映射解除,归入可分配空闲内存池,从而实现了物理内存的回收。当虚拟机管理器需要给虚拟机分配更多内存时,气球驱动进行“收缩”,即向操作系统释放所持有的物理内存资源。虚拟机管理器从空闲内存池找到气球驱动通知要释放页面的足够的机器内存,并为其建立P2M映射。

气球驱动很巧妙地利用了虚拟机操作系统自身的内存管理机制。虚拟机可用物理内存紧张时,操作系统可以使用自身的内存管理算法,而不是由虚拟机管理程序来决定。从而保证了虚拟机的性能。但是气球驱动依赖于虚拟机操作系统,其物理内存伸缩范围也受制于初始物理内存大小,所以气球驱动虽然简单灵活,但是也存在伸缩范围不足的情况。

(3)内存页共享机制

如果有技术可以通过扫描内存页来识别和共享虚拟机间内容相同的页面,那么虚拟机内存重复页面越多时,节省内存空间越多。

内存页共享机制,建立虚拟机I/O模型时分别建立共享和打破共享两部分。建立共享时,通过对每个虚拟机的页面计算哈希值,建立哈希表,为哈希值相同的页面建立共享,即映射到同一个只读的内存页,将重复页删除。然后周期性执行该过程,直到共享的内存页面需要修改时就打破共享,为该共享内存页新建页面,并恢复新页的写权限。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈