内存共享和过量使用有什么区别

网站编辑2021-05-11 10:50:26368

  内存共享和过量使用有什么区别,共享(sharing)和过量使用(overcommitment)这两种内存管理技术都能够帮助提升系统整合性,但是在使用它们之前,管理员应该首先了解二者之间的细微差别。
  一台服务器能够支持的虚拟机数量通常取决于物理硬件所能够提供的可用计算资源。大多数资源,比如处理器周期、存储I/O和网络带宽等,都能够相对简单地进行共享。这种做法的原理在于负载并不总是处于忙碌状态,因此共享——或者过度使用——资源能够实现更高等级的负载整合,因此为虚拟机分配的资源总量和可以超过当前物理资源的总数量;就算在特殊情况下出现问题,也只不过是对负载性能产生轻微影响。

  然而 ,服务器内存一直以来都被视为一种固定资源。由于每台运行在内存当中的虚拟机都是应用程序和数据集合的完整镜像,因此为所有虚拟机提供足够的内存资源是十分重要的。否则,服务器将不得不使用硬盘上的交换文件(swap file)来补充内存空间——但是通常这种方式会对虚拟机的性能造成极为严重的影响。但是随着内存过度使用和内存共享技术的出现,这种情况正在发生改变。


  借助于内存过度使用技术,主机服务器所分配的内存数量可以超过现有的物理内存数量。比如,假设一台主机服务器拥有4GB物理内存,那么借助于内存过度使用技术也许可以创建六台内存为1GB的虚拟机。乍看之下,这是一种非常危险的方式,因为两种负载不能同时共享相同内存地址空间当中的不同数据片——至少在将数据交换到硬盘之前是不可以的。
  但是设计者很快意识到许多虚拟机并不会使用为其分配的全部内存空间,导致部分内存空间基本上被浪费了,因为一直处于空闲或者未使用状态。Hypervisor能够寻找处于空闲状态的内存,并且将其提供给需要使用的虚拟机。如果没有其他虚拟机需要额外的内存,那么这些空闲空间可以被用来创建新的虚拟机。可以在“共享(Shares)”虚拟内存配置当中定义虚拟机在内存池当中的优先级,并且还可以通过“预留(Reservation)”机制定义虚拟机能够使用的最小内存空间,保证虚拟机拥有足够内存以正常运行。
  虚拟机还能够共享大量内容。比如,上面提到的六台1GB内存虚拟机全部运行Windows Server 2012 R2,其中两台虚拟机运行相同的业务应用。那么在这种情况下,五台Windows Server 2012 R2和一个应用程序就是冗余的。内存共享技术允许不同虚拟机使用相同内存页面当中的一个通用实例。这样就能够减少虚拟机需要使用的内存总数量,并且支持更高等级的过度使用。内存共享技术的实现方式非常类似于硬盘存储当中的数据去重复化机制。
  需要特别注意的是内存过度使用和内存共享都是高度动态的技术,会受到总计算负载和通用内容数量的影响。比如,很少使用的虚拟机能够为内存过度使用释放大量内存空间,但是随着虚拟机使用频率的增加和内存需求的增长,hypervisor必须将这些内存返还给虚拟机,否则就会面临使用硬盘交换文件所带来的性能问题。类似地,使用不同操作系统版本、应用程序和数据的虚拟机也许只有很少能够共享的通用内存页面。虚拟机迁移和负载均衡会改变通用内存页面,对内存共享产生影响。

最新推荐

右侧广告图1
  • 云数据库Redis

    阿里云 Redis 开源版及 Tair 均提供了多种架构,并支持资源规格的灵活配置和实时调整,能够在游戏、金融、广告、电信、直播、电商、安全等对时延有严苛要求的领域提供稳定支撑。

    ¥1020.00/年

    新人专享

  • 智能对话分析

    智能对话分析帮助企业从海量对话录音或对话文本中挖掘可能存在的风险点和商机,同时提升企业服务质量、监控舆情风险、优化服务策略,典型应用场景有智能客服质检、销售线索分析等。

    ¥350.00/月

    年中优惠

  • GPU实例gn8v-tee(机密计算)

    提供机密计算,虚拟化加密等能力,全方位保障用户推理数据和企业模型安全,无需固定资产的投入,资源按需使用,成本大大降低,让客户享受技术红利。

    ¥21052.24/月

    官网折上折,折扣优惠

右侧广告图2