内存共享和过量使用区别在哪里
2016-04-21 09:11
162 查看
【TechTarget中国原创】 共享(sharing)和过量使用(overcommitment)这两种内存管理技术都能够帮助提升系统整合性,但是在使用它们之前,管理员应该首先了 解二者之间的细微差别。 一台服务器能够支持的虚拟机数量通常取决于物理硬件所能够提供的可用计算资源。大多数资源,比如处理器周期、存储I/O和网络带宽等,都能够相对简单地进 行共享。这种做法的原理在于负载并不总是处于忙碌状态,因此共享——或者过度使用——资源能够实现更高等级的负载整合,因此为虚拟机分配的资源总量和可以 超过当前物理资源的总数量;就算在特殊情况下出现问题,也只不过是对负载性能产生轻微影响。 然而 ,服务器内存一直以来都被视为一种固定资源。由于每台运行在内存当中的虚拟机都是应用程序和数据集合的完整镜像,因此为所有虚拟机提供足够的内存资源是十 分重要的。否则,服务器将不得不使用硬盘上的交换文件(swap file)来补充内存空间——但是通常这种方式会对虚拟机的性能造成极为严重的影响。但是随着内存过度使用和内存共享技术的出现,这种情况正在发生改变。 借助于内存过度使用技术,主机服务器所分配的内存数量可以超过现有的物理内存数量。比如,假设一台主机服务器拥有4GB物理内存,那么借助于内存过度使用 技术也许可以创建六台内存为1GB的虚拟机。乍看之下,这是一种非常危险的方式,因为两种负载不能同时共享相同内存地址空间当中的不同数据片——至少在将 数据交换到硬盘之前是不可以的。 但是设计者很快意识到许多虚拟机并不会使用为其分配的全部内存空间,导致部分内存空间基本上被浪费了,因为一直处于空闲或者未使用状态。 Hypervisor能够寻找处于空闲状态的内存,并且将其提供给需要使用的虚拟机。如果没有其他虚拟机需要额外的内存,那么这些空闲空间可以被用来创建 新的虚拟机。可以在“共享(Shares)”虚拟内存配置当中定义虚拟机在内存池当中的优先级,并且还可以通过“预留(Reservation)”机制定 义虚拟机能够使用的最小内存空间,保证虚拟机拥有足够内存以正常运行。 虚拟机还能够共享大量内容。比如,上面提到的六台1GB内存虚拟机全部运行Windows Server 2012 R2,其中两台虚拟机运行相同的业务应用。那么在这种情况下,五台Windows Server 2012 R2和一个应用程序就是冗余的。内存共享技术允许不同虚拟机使用相同内存页面当中的一个通用实例。这样就能够减少虚拟机需要使用的内存总数量,并且支持更 高等级的过度使用。内存共享技术的实现方式非常类似于硬盘存储当中的数据去重复化机制。 需要特别注意的是内存过度使用和内存共享都是高度动态的技术,会受到总计算负载和通用内容数量的影响。比如,很少使用的虚拟机能够为内存过度使用释放大量 内存空间,但是随着虚拟机使用频率的增加和内存需求的增长,hypervisor必须将这些内存返还给虚拟机,否则就会面临使用硬盘交换文件所带来的性能 问题。类似地,使用不同操作系统版本、应用程序和数据的虚拟机也许只有很少能够共享的通用内存页面。虚拟机迁移和负载均衡会改变通用内存页面,对内存共享 产生影响。
TechTarget中国原创内容,原文链接: http://www.searchvirtual.com.cn/showcontent_92654.htm
© TechTarget中国:http://www.techtarget.com.cn
TechTarget中国原创内容,原文链接: http://www.searchvirtual.com.cn/showcontent_92654.htm
© TechTarget中国:http://www.techtarget.com.cn
相关文章推荐
- How to save a gecko from gluing disaster
- Struts2框架学习(三) 数据处理
- js 数组
- Effective STL条款17-条款18
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- C++实验4——项目3:乘法口诀表
- 彻底删除项目的VSS源代码管理信息
- Struts2框架学习(二) Action
- matlab中当前文件目录和搜索路径的区别
- Android日期时间选择对话框
- HTTPS的误解(二)
- 【bzoj2666】【cqoi2012】【组装】【贪心】
- Struts2框架学习(一)
- POJ1064 Cable master(二分)
- 搭建hadoop的高可用性(HA)集群
- Android 高仿微信6.0主界面 带你玩转切换图标变色
- Python = "我为什么开始学Python"
- 在字符串中找出第一个只出现一次的字符
- LeetCode 38. Count and Say
- 寻找一个单向链表的中项,如果存在两个则返回前一个,给出算法描述