什么是内存气球技术?

2025年4月28日 | 阅读 6 分钟

有很多内存管理系统被用来利用内存,但如今,一种特殊的内存管理方式被用来管理内存,这种系统被称为内存气球技术

内存气球技术是一种在大多数虚拟化平台中使用的内存管理功能,以更有效地利用物理内存为虚拟服务器。内存气球技术是现代虚拟化数据存储架构的关键组成部分。随着物理和虚拟资产都需要内存资源,需要各种方法来声明、释放和回收内存。

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

这是通过安装在客户操作系统上的气球驱动程序来实现的,当需要通过气球技术回收内存时,虚拟机管理程序会与该驱动程序通信。

什么是虚拟机管理程序?

内存气球技术发生在虚拟化虚拟机管理程序内部。虚拟机管理程序是一种使虚拟机能够运行的技术,为软件提供虚拟抽象层。虚拟机管理程序负责这些虚拟机之间的通信。

广泛使用的虚拟机管理程序技术包括VMware ESXi、Microsoft Hyper-V以及开源的XenKVM技术。每种虚拟机管理程序都可以用来启用客户虚拟机,这些客户虚拟机以抽象的、虚拟的方式运行操作系统和应用程序。

What is Memory Ballooning

虚拟机管理程序使用运行在客户虚拟机上的驱动程序来处理不同的需求,包括虚拟 CPU、磁盘空间和内存等资源限制。气球驱动程序运行在虚拟机之间,并使虚拟机管理程序能够将内存从一个虚拟机重新分配到另一个虚拟机。

内存气球技术的过程

理解虚拟机管理程序的工作原理与内存气球技术的过程内在相关。虚拟机管理程序抽象有限的系统资源,然后将它们分配给正在运行的虚拟机进程。

  • 主机物理内存:底层服务器或云平台拥有一定量的已安装系统内存,代表可用的绝对总内存量。
  • 客户物理内存:虚拟机管理程序被分配一定量的物理内存,以提供运行虚拟机所需的资源。客户物理内存是虚拟机管理程序可用的最大内存量。
  • 客户虚拟内存:虚拟机管理程序将其总内存资源的一部分分配给正在运行的客户虚拟机作为虚拟内存。
What is Memory Ballooning

在内存气球技术模型中,一个被分配了 8 GB 客户虚拟内存但未使用的虚拟机,可以将其中一部分 RAM 重新分配给另一个需要额外内存的正在运行的虚拟机。

气球驱动程序负责跟踪从一个虚拟机到另一个虚拟机之间的内存分配。内存气球技术的主要目标是使虚拟机能够获得满足特定进程或应用程序需求高峰所需的内存。即使它通常没有分配足够的内存。

为什么内存气球技术很重要?

在操作系统中,内存气球技术因为以下原因而很重要,例如:

  • 资源优化:通过内存气球技术,内存会从当前没有使用完所有可用内存的虚拟机中获取。未使用的内存会被重新分配给需要额外资源的虚拟机。
  • 内存可用性:而不是因为需求或进程的峰值而简单地不为虚拟机提供它所需的资源,内存气球技术在需要时提供更多的内存。
  • 降低成本:通过更有效地利用内存,可以减少部署更多物理服务器或分配更多物理内存的需求,从而节省额外的运营和能源成本。

内存气球技术如何工作?

内存气球技术是一种计算机内存回收技术,由虚拟机管理程序使用,允许物理主机系统从某些客户虚拟机 (VM) 中检索未使用的内存,并与其他虚拟机共享。

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

内存气球技术的问题

内存气球技术存在一些问题,例如:

  • 气球内存利用率高:气球技术中可能出现的问题之一是利用率高。气球驱动程序可能会占用过多内存,导致虚拟机管理程序缺乏充分的资源来达到最佳性能。
  • 性能:如果多个正在运行的虚拟机同时请求气球内存,则可能导致 CPU 和物理磁盘使用率激增,因为虚拟机管理程序通过内存交换技术提取资源,这会进一步降低整体系统性能。

VMware 中的气球软件

VMware 要求您首先在虚拟机中安装气球软件,才能在 VMware 中使用您的虚拟机。

  • 气球的大小取决于虚拟机所需的内存量。根据需求,气球的大小可以增加或减少,从而使内存气球技术更加动态。
  • 为了确保性能保持最佳,您应该在所有主机上拥有足够的内存空间,因为气球驱动程序会记住所有其他主机上的活动内存使用情况。
  • 该系统确保当前使用中的内存或活动内存不应超过主机内存。
    (活动内存) < (主机内存)
  • 如果有许多虚拟机同时激活,那么它会突然增加虚拟机管理程序的工作负载。然而,使用内存气球技术的优点是它不会降低性能。
  • 当许多虚拟机加入并导致连接数激增时。因此,这个问题也不会导致连接性能下降。

内存气球技术的优点

内存气球技术具有以下优点,例如:

  • 即使连接中的工作负载增加,气球技术也不会让系统性能下降。
  • 实施该系统的最大优势在于,它将最大限度地利用连接中可用的内存。
  • 它是动态的,因此可以根据行业或公司的需求修改此技术。

内存气球技术的缺点

内存气球技术看起来是一个非常好的实现选择,但它也有一些缺点,例如:

  • 资源过度利用是指一个气球占用了大量内存,导致虚拟机管理程序无法为传入的需要内存的气球提供足够的内存。
  • 由于虚拟机管理程序使用内存交换和共享原则,如果一个以上的虚拟机处于非活动状态并请求内存,则会影响系统性能。因此,我们应该使用互斥原则。