11

Linux supports hot-adding memory when running as a VM guest, in VMware for example. (Sometimes you need to manually inform the guest OS.)

Is there a safe way to do the inverse operation — reducing the amount of memory allocated to a virtual machine, and if so, do you need to manually inform the Linux guest before such an operation? (If so, is the procedure specific to VMware tools, or is it generic for any kind of virtualization mechanism?)

2 Answers 2

7

ESXi doesn't support hot-removing memory or CPUs from a VM. Someone I met in the pub a couple of months ago told me that the sister of a friend of his cousin *cough* got the answer that virtually no customer demands this feature. In other words: It doesn't pay to bother implementing hot-remove.

If you want ESXi to support this, go to VMware and tell them. The more people do, the higher the chances they'll implement it.

6
  • 1
    Read this and had, "my best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious."
    – warren
    May 18, 2015 at 21:39
  • It's interesting that a commercial company such as vmware is not supporting hot removal of memory, whilst KVM (free software) does. I'd say it's another great argument for free software.
    – aseq
    Jun 5, 2015 at 22:15
  • @aseq While I'm a big fan of free software, I don't think that one single feature is a good reason for (or against) it.
    – Mario Lenz
    Jun 6, 2015 at 19:24
  • It depends on the feature, however kvm has a lot of other things going for it. This particular one may just be the deciding factor.
    – aseq
    Jun 8, 2015 at 18:23
  • @aseq Hot removal of memory might be the reason to choose KVM instead of ESXi, but that's a very specific decision and has nothing to do with the general advantages of free software.Let me put it like this: If it was the other way round (ESXi would support hot removal of memory and KVM wouldn't), would that be a great argument for proprietary software? I think not.
    – Mario Lenz
    Jun 9, 2015 at 20:45
4

I can not say for sure in vmware, but when using kvm decreasing memory of a running virtual machine works fine. Of course up to a limit, but the software will tell you. When you decrease it the memory in the virtual machine will gradually be lowered, until it can't be lowered any further. If you set the memory to be lower than where it stopped you will need to reboot the virtual machine to have it lowered completely.

I recently did that on a system running kvm with about 20 virtual machines, where someone thought it wise to over commit memory, causing some virtual machines to run in swap (doh!). To fix it I lowered the memory by about 20-40% of 2/3 of the virtual machines and most were able to lower it completely while running. A few needed a reboot to have the new memory setting take effect completely.

Going from that I would assume a vmware virtual machine could allow this behaviour as well. However a quick test in vmware player tells me that it will need a reboot to take effect (fancier vmware software may behave nicer). Otherwise it is safe to do so on a running system. Of course whether the amount of memory it is left with is enough to run it correctly is another matter.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .