操作系统中的内存膨胀
内存膨胀:
内存膨胀是大多数虚拟化平台的一项功能,可以更有效地为虚拟服务器使用物理内存。内存膨胀是现代虚拟化数据存储架构的重要组成部分。由于物理和虚拟资产都需要内存资源,因此需要多种方法来声明、释放和回收内存。
内存膨胀是一种常见的虚拟化技术技术,它利用虚拟机内存。内存膨胀是大多数虚拟化平台中的一种内存管理功能,它允许主机系统通过利用或回收以前分配给各种虚拟机的未使用内存来人为地扩展其内存池。
这是通过在来宾操作系统上安装气球驱动程序来实现的,当管理程序需要通过气球回收内存时,它会与它进行通信。
您可以将其视为更大程度地“拉伸”常规物理内存。这使具有 32 GB 内存的服务器能够托管多达 64 GB 的虚拟机(实际里程将根据工作负载而有所不同)。
什么是管理程序?
内存膨胀发生在虚拟化管理程序的上下文中。管理程序是通过为软件提供虚拟抽象层来允许虚拟机运行的技术。
今天,广泛使用了多种管理程序技术,包括 VMware ESXi、Microsoft Hyper-V 以及开源 Xen 和 KVM 技术。每个管理程序都可用于启用以虚拟化方式运行操作系统和应用程序的来宾虚拟机。
管理程序在运行的客户虚拟机中使用驱动程序来处理各种需求,例如虚拟 CPU、磁盘空间和内存等资源限制。气球驱动程序跨虚拟机运行,允许管理程序将内存从一个虚拟机重新分配到另一个虚拟机。
内存膨胀的过程:
了解管理程序的工作原理与了解内存膨胀过程密不可分。管理程序抽象出有限的系统资源,然后将它们分配给正在运行的虚拟机进程。
- 主机物理内存 –
底层服务器或云平台安装了一定数量的系统内存,代表可用内存的绝对总量。 - 来宾物理内存 –
为了向正在运行的虚拟机提供资源,系统管理程序会获得一部分主机的物理内存。虚拟机管理程序可用的最大内存量称为来宾物理内存。 - 来宾虚拟内存 –
管理程序将其总内存资源的一部分作为虚拟内存分配给正在运行的客户虚拟机。
例如,在内存膨胀模型中,一个虚拟机分配了 8 GB 的客户虚拟内存但没有使用它,可以将其中的一些 RAM 重新分配给另一个需要额外内存的正在运行的虚拟机。
当它们从一个虚拟机移动到下一个时,气球驱动程序会跟踪内存分配。内存膨胀的主要目标是为虚拟机提供满足进程或应用程序需求高峰所需的内存。即使它通常没有分配足够的内存,也会发生这种情况。
内存膨胀问题:
- 高气球内存利用率 -
高利用率是可能出现的潜在问题之一。气球驱动程序可能会消耗太多内存,以至于虚拟机管理程序将没有足够的资源来以最佳性能运行。 - 表现 -
如果多个虚拟机同时请求膨胀内存,则 CPU 和物理磁盘使用量可能会激增,因为管理程序通过内存交换技术提取资源,从而进一步降低整体系统性能。
内存膨胀的重要性:
- 资源优化——
内存膨胀从当前未使用所有可用内存的虚拟机中获取内存,然后将未使用的内存重新分配给需要额外资源的虚拟机。 - 内存可用性 –
内存膨胀,与由于需求或进程激增而简单地不向虚拟机提供所需的资源相反,它会在需要时提供更多内存。 - 更低的花费 -
内存效率降低了部署更多物理服务器或分配更多物理内存的需求,这会导致额外的运营和能源成本。