📜  操作系统中的内存膨胀

📅  最后修改于: 2022-05-13 01:56:11.359000             🧑  作者: Mango

操作系统中的内存膨胀

概述 :
您可能已经研究过操作系统用来利用内存的许多内存管理系统,但是现在使用一种特殊类型的内存管理来管理内存,这种系统被称为内存膨胀。在虚拟内存处理平台中观察到它的频繁使用,如 VMWare、开源 KVM 等。 这个系统的最基本的形象可以通过想象有一个气球,充满空气,保持在一个立方体的盒子里,就像与您的操作系统外观相同的形状。现在,想象有一个泵连接到气球的嘴上,它可以做得很大,但只能在一定程度上。此范围可以是先前虚拟机先前使用的无人认领的内存。

沟通 :
这些虚拟机之间的通信由管理程序完成。

  • 对于内存膨胀中的内存管理,主机服务器负责。主机服务器将回收当前进入 VM 的不太忙的进程未使用的内存,并将该内存引导至更迫切需要它的进程。
  • 因此,对于理论上的理解,我们可以想象具有 32 gigs 的系统可以将其内存扩展到 64 gigs。同样,这些数字本质上是理论上的。主机分配的内存可以小于或大于给定值。

气球司机:
现在,我们将看到每个连接的访客机器中的气球驱动程序如何在内存气球中做出响应。

  • 每当一台机器需要一些内存进行回收时,管理程序就会注册一个特定内存的回收请求,并且其他系统都不应获取它。
  • 如果根据气球需求内存不足,则可以在VM之间进行重新排列,并且可以通过共享或交换内存来满足气球内存需求。好的架构不应该过多地出现这种情况,因为它会过度消耗资源。

虚拟机中的气球软件:
像VMWare这样的软件要求你首先在VM中安装ballooning软件才能开始在VMWare中使用你的VM。

  • 气球的大小取决于 VM 需要多少内存。根据需求,可以增加或减少气球的大小,从而使内存气球在本质上更具动态性。
  • 为了确保性能保持在一流水平,您应该在所有主机中都有足够的大小,因为气球驱动程序会记住所有其他主机的活动内存使用情况。
  • 该系统确保的一件事是,尽管进行了内存扩展,但当前使用的内存,即活动内存不应超过主机内存。
(active memory)<(host memory)
  • 如果同时激活多个虚拟机,那么普遍的理解是,这会突然增加管理程序和整个生态系统的工作量,但使用内存膨胀的优点是不会降低性能.
  • 当许多虚拟机加入时也是如此,它会在连接中造成峰值,因此这个问题也不会造成连接降级。

好处 :
现在,让我们来看看它的优点如下。



  • 即使连接中的工作负载增加,膨胀也不会让系统降级。
  • 实施该系统的最大优势在于,它将利用连接中最多的可用内存。
  • 它本质上是动态的,因此可以根据行业或公司的要求修改该技术。

缺点:
作为内存,ballooning 似乎是一个非常好的实现选择,但它有一些缺点如下。

  • 资源过度利用是指当气球占用大量内存时,虚拟机管理程序变得稀缺,无法为即将到来的有需要的气球提供内存。
  • 由于管理程序使用内存交换和共享原理,如果多个虚拟机处于非活动状态,请求内存,那么它会阻碍系统性能。所以,我们应该使用互斥原理。