操作系统 什么是内存膨胀

操作系统 什么是内存膨胀

许多内存管理系统被用来利用内存,但是现在,一种特殊类型的内存管理被用于管理内存,这个系统被称为 内存膨胀

内存膨胀是大多数虚拟化平台中用于更高效利用物理内存的内存管理功能。内存膨胀是现代虚拟化数据存储架构的关键组成部分。由于物理和虚拟资产都需要内存资源,所以需要各种方法来申请、释放和回收内存。

内存膨胀是一种常见的虚拟化技术,利用虚拟机内存。它是大多数虚拟化平台中的一种内存管理功能,允许主机系统通过利用或回收之前分配给各个虚拟机的未使用内存来人为扩大其内存池。

通过在客户操作系统上安装一个气球驱动程序,在需要通过充气回收内存时,它与虚拟化程序进行通信。

什么是虚拟化程序

内存膨胀发生在虚拟化虚拟化程序中。虚拟化程序是一种技术,允许虚拟机运行,并为软件提供虚拟的抽象层。虚拟化程序负责这些虚拟机之间的通信。

广泛使用多个虚拟化程序技术,包括VMware ESXi、Microsoft Hyper-V和开源的Xen和KVM技术。每个虚拟化程序可以用于启用运行操作系统和应用程序的虚拟客户机,采用抽象的虚拟方法。

操作系统 什么是内存膨胀

虚拟机使用驱动程序来处理不同的需求,包括资源限制(如虚拟CPU,磁盘空间和内存)。气球驱动程序在虚拟机之间运行,并使得虚拟机监控程序能够将内存从一个虚拟机重新分配给另一个虚拟机。

内存膨胀过程

了解虚拟机监控程序的工作方式与内存膨胀过程密切相关。虚拟机监控程序将有限的系统资源抽象化,然后将其分配给正在运行的虚拟机进程。

  • 主机物理内存: 基础服务器或云平台上安装的系统内存的一定量,表示可用内存的绝对总量。
  • 虚拟机物理内存: 虚拟机监控程序被分配了主机物理内存的一定量,以为运行虚拟机提供资源。虚拟机物理内存是虚拟机监控程序可用内存的最大量。
  • 虚拟机虚拟内存: 虚拟机监控程序将一定量的总内存资源分配为正在运行的虚拟机的虚拟内存。

操作系统 什么是内存膨胀

在内存膨胀模型中,一个未使用 8 GB 客户虚拟内存的虚拟机可以将其中一部分内存重新分配给另一个需要额外内存的运行虚拟机。

内存膨胀驱动程序会追踪虚拟机之间的内存分配。内存膨胀的主要目的是使虚拟机获取所需的内存以满足特定的进程或应用需求峰值,即使通常没有分配足够的内存。

为什么内存膨胀很重要

在操作系统中,内存膨胀很重要的原因有以下几点:

  • 资源优化: 内存膨胀从未使用所有可用内存的虚拟机中获取内存。未使用的内存会重新分配给需要额外资源的虚拟机。
  • 内存可用性: 内存膨胀会在需要时提供更多内存,而不是仅仅因为需求或进程的峰值而不提供所需的虚拟机资源。
  • 降低成本: 通过更有效地使用内存,降低了部署更多物理服务器或分配更多物理内存的需求,从而减少了额外的运营和能源成本。

内存膨胀是如何工作的

内存膨胀是一种由虚拟机监控器使用的计算机内存回收技术,允许物理主机系统从某些客户虚拟机中检索未使用的内存并与其他虚拟机共享。

操作系统 什么是内存膨胀

  1. 内存膨胀技术允许虚拟机(VM)所需的总RAM量超过主机上可用的物理RAM量。
  2. 当主机系统的物理RAM资源不足时,内存膨胀会有选择性地分配给虚拟机。
  3. 如果虚拟机只使用了其分配的一部分内存,膨胀技术会释放出可供主机使用的内存。例如,如果主机上的所有虚拟机都分配了8 GB的内存,其中一些虚拟机只使用了一半的份额。同时,一个虚拟机可能需要12 GB的内存进行密集的处理。内存膨胀使主机能够借用未使用的内存并将其分配给内存需求更高的虚拟机。
  4. 客户操作系统运行在虚拟机内部,虚拟机被分配了一部分内存。因此,客户操作系统不知道总内存的可用情况。内存膨胀使客户操作系统意识到主机的内存不足。
  5. VMware等虚拟化提供商启用内存膨胀。主机使用在虚拟机上运行的气球驱动程序来确定可以从未充分利用的虚拟机中获取多少内存。参与内存膨胀技术的任何虚拟机都必须安装气球驱动程序。
  6. 气球驱动程序从hypervisor获取目标气球大小,然后通过在虚拟机中分配适当数量的客户机物理页面来扩大。此过程称为 扩大气球 ,释放可用页面则称为 收缩气球

内存膨胀的问题

内存膨胀存在一些问题,例如:

  • 高气球内存利用率: 可能出现气球驱动程序占用了太多内存的情况,导致hypervisor缺乏所需的全部资源,无法以最佳性能运行。
  • 性能: 如果多个正在运行的虚拟机同时请求气球内存,由于hypervisor通过内存交换技术提取资源,可能会导致CPU和物理磁盘使用率飙升,进一步降低整个系统的性能。

VMware中的气球驱动软件

在VM中安装气球驱动软件是使用VMware的先决条件。

  • 气球的大小取决于VM所需的内存量。根据需求,可以增加或减少气球的大小,使内存膨胀更加动态。
  • 为了保持性能最佳,所有主机机器的大小都应该足够大,因为气球驱动程序将记住所有其他主机机器的活动内存使用情况。
  • 该系统确保当前使用的内存或活动内存不应超过主机内存。 **(活动内存) < (主机内存) **
  • 如果同时激活多个虚拟机,则会突然增加hypervisor的工作量。但是,使用内存膨胀的好处是不会降低性能。
  • 当多个虚拟机连接时,会引发连接数的急剧增加。因此,这个问题也不会导致连接的性能下降。

内存膨胀的优势

内存膨胀具有以下优点:

  • 即使工作负载增加,填充也不会使系统性能下降。
  • 实现此系统的最大优势是它能够利用连接中可用的最大内存。
  • 该技术是动态的,可以根据行业或公司的需求进行修改。

内存膨胀的缺点

内存膨胀似乎是一种很好的实现选择,但它也具有一些缺点,例如:

  • 资源过度利用是指填充占用大量内存,使得虚拟化管理程序无法给予需要内存的虚拟机足够的内存资源。
  • 由于虚拟化管理程序使用内存交换和共享原则,如果多个处于非活动状态的虚拟机请求内存,可能会影响系统性能。因此,应使用互斥原则。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程