在 Linux 虚拟机中热移除内存

200*_*ess 11 linux memory virtual-machines hotswap vmware-vsphere

Linux 在作为 VM 来宾运行时支持热添加内存,例如在 VMware中。(有时您需要手动通知来宾操作系统。)

是否有一种安全的方法来执行反向操作——减少分配给虚拟机的内存量,如果是这样,您是否需要在执行此类操作之前手动通知 Linux 客户机?(如果是这样,该过程是特定于 VMware 工具的,还是适用于任何类型的虚拟化机制?)

Mar*_*enz 7

ESXi 不支持从 VM 热移除内存或 CPU。几个月前我在酒吧里遇到的一个人告诉我,他表弟*咳嗽* 的一个朋友的妹妹得到的答案是,几乎没有客户需要此功能。换句话说:麻烦实施热删除是不值得的。

如果您希望 ESXi 支持此功能,请转至 VMware 并告诉他们。做的人越多,他们实施它的机会就越大。


ase*_*seq 4

我不能在 vmware 中确定,但是当使用 kvm 减少正在运行的虚拟机的内存时效果很好。当然有一个限制,但是软件会告诉你。当您减少它时,虚拟机中的内存将逐渐减少,直到无法再减少为止。如果您将内存设置为低于停止位置,则需要重新启动虚拟机才能完全降低内存。

我最近在一个运行 kvm 并拥有大约 20 个虚拟机的系统上这样做了,有人认为过度提交内存是明智的,导致一些虚拟机在交换中运行(doh!)。为了解决这个问题,我将 2/3 虚拟机的内存降低了大约 20-40%,大多数虚拟机在运行时都能够完全降低内存。有些需要重新启动才能使新的内存设置完全生效。

由此看来,我假设 vmware 虚拟机也可以允许这种行为。然而,在 vmware 播放器中进行的快速测试告诉我,它需要重新启动才能生效(更高级的 vmware 软件可能表现得更好)。否则,在正在运行的系统上执行此操作是安全的。当然,剩下的内存量是否足以正确运行是另一回事。