Linux 虚拟机中的热移除内存

Linux 虚拟机中的热移除内存

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

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

答案1

ESXi 不支持从虚拟机中热移除内存或 CPU。几个月前我在酒吧遇到的一个人告诉我,他表弟的一个朋友的妹妹 *咳咳* 得到的答案是几乎没有客户需要此功能。换句话说:没有必要费心实现热移除。

如果您希望 ESXi 支持此功能,请告诉 VMware。这样做的人越多,他们实现此功能的可能性就越大。

答案2

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

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

从这一点来看,我认为 vmware 虚拟机也可以允许这种行为。然而,在 vmware player 中进行的快速测试告诉我,它需要重新启动才能生效(更高级的 vmware 软件可能会表现得更好)。否则,在正在运行的系统上这样做是安全的。当然,它剩余的内存量是否足以正确运行它是另一回事。

相关内容