虚拟机内存复用技术的比较(主要针对XEN系统)
来源:互联网 发布:mac橘红色适合什么肤色 编辑:程序博客网 时间:2024/05/16 14:09
虚拟机内存复用技术的比较(主要针对XEN系统)
技术途径
业界就该问题定义为虚拟机内存复用(复用干嘛? 当然是为了跑更多的虚拟机呀!) :memory overcommit.围绕次问题主要有4种技术手段,下面简要介绍和分析:
1 气泡驱动(ballooning driver)
利用预装在用户虚拟机中的前端驱动程序,偷取guest os的内存贡献给VMM以供其他虚拟机使用.反向易然.
issue:
A 需要实现用户虚拟机支持的前端驱动程序.
B 不能自动偷取和归还,需要从DOM0设置.
C 不能实现启动时的内存复用,只能启动后偷取(即启动虚拟机时宿主机必须提供其给定大小的内存)
D 目前xen 引入了pod (Populate-on-demand) 似乎解决了在HVM虚拟机中的限制C
2 基于内容的页共享(base-content page sharable)
VMM会让虚拟机共享同样内容的也面,以达到节约内存的目的。
issue:
A 操作比较重,因为要查看页面内容。
B 目前VMM只是对前后端驱动所用的页面,因此能省出的内存数量很有限。
C blktap2目前该技术尚不完善。
3 VMM 换出技术(OnDemand paging/swap)
VMM实现请页功能,这时guest os 类似进程一样在VMM缺少内存时能被换出到宿主机磁盘上。该方法对虚拟机透明。
issue:
A 由于对虚拟机透明,所以换出的虚拟机存在不确定性。这样容易造成“double paging”,也就是guest os中某些页面已经被换出,而该guest os又被VMM换出,这样必然让guest os的性能恶化。
B Xen的实现中hypervisor没有IO功能,因此要换出页面则需要借助dom0完成。所以操作复杂,目前尚未真正实现。(kvm中由于hypervisor在内核中实现,guest os 实现基于进程,因此onDemand paging功能省缺实现)
4 Transcient Memory
Oracle 提出的新方法,这种方法实际采用了guest os 内存分配和VMM沟通,也就是向VMM申请,使用完毕,归还VMM的思路。这种方法最彻底的解决内存复用问题。
issue:
A 需要改变guest os已有的内存分配接口。也就是改造现有系统(虽然是安全的非侵入式改造)。
B 该技术还在发展阶段,尚不成熟。
结论:
1 目前最成熟和可投入实用是气泡驱动.1 该技术已经发展多年 2 linux /windows其前端气泡驱动都有参考模型。3 ciritx server已经采用气气泡 + vm反馈 + dom0上的策略引擎 实现了单机上的内存复用。
2 最理想的方式是采用 Transcient Memory 实现复用,这种方式无疑是将宿主机的整个内存池化、实现了按需分配、用完归还。避免了使用预先化区——被VM独占——带来的分配限制(这好比一个系统5个硬盘,单独使用和采用LVM方式使用的区别)
3 如果你想更经济,尤其跑网站等应用——也许你该考虑考虑VPS
- 虚拟机内存复用技术的比较(主要针对XEN系统)
- 进入开源虚拟机 XEN 的世界,虚拟技术平台的比较
- 进入开源虚拟机 XEN 的世界,虚拟技术平台的比较
- Xen虚拟机迁移技术
- xen虚拟机的linux系统时间设置
- xen用FTP方式安装虚拟机系统
- Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)
- xen同其他模拟器/虚拟机软件的比较
- Xen虚拟机快照技术介绍
- xen虚拟机的启动(引导)方式
- xen虚拟机的启动(引导)方式
- 针对特定应用的内存管理技术
- [虚拟技术]Linux KVM与Xen,QEMU的性能比较
- centOS通过xen虚拟机安装XP系统的方法
- Android手机便携式wifi的使用及无线数据传输(主要针对XP系统)
- 触发器同步数据针对表,这样的主要是针对个别表同步技术使用
- Xen动态迁移的内存热拷贝技术
- Xen的内存管理
- 软件开发管理十大工作任务
- 编译错误
- 小组活动学习
- 贪吃蛇(java版本)留作回忆【共三份文件:1、 TestSnake.java 2、Snake. java 3、Food.java】
- 好的习惯----程序员成长之路(from老大邮件)
- 虚拟机内存复用技术的比较(主要针对XEN系统)
- 获取外网IP并发送邮件通知
- VC 双缓冲绘图
- « VS 2010 和 .NET 4.0 系列之《VS 2010中JavaScript Intellisense的改进》篇 VS 2010 和 .NET 4.0 系列之《在 VS 2010中进行框式选择和多行编辑》篇 » VS 2010 和 .NET 4
- fusionChart学习
- C#反转字符串的两种方法
- linux内存管理概述(转)
- test
- 我的电脑学习历程.序章