Update: Read Microsoft's response to using memory overcommitment in a production environment.
In a session this week there was some interesting talk about memory overcommitment on the VMware flagship ESX product, and part of the discussion was comparing VMware's hypervisor to Hyper-V and Xen.
Here is the example they gave us. If you have 14 GB of RAM on a server and you want to allocate 2 GB of RAM to each server, on a Microsoft/XEN hypervisor, you will be able to run only seven virtual machines. If you try to run more, you can't. On VMware's hypervisor, you can run up to fourteen virtual machines with decent CPU loads, and if you just wanted to see how many virtual machines you could start with a zero load, it would be in the range of forty virtual machines.
Wow, this is great but would you do this in a production environment?
After they provided us with the example, they went into the price comparison and showed a chart that displayed the price per VM was in fact cheaper than Microsoft/Xen if you are taking advantage of memory overcommitment. They were basically telling us to mention to clients to overcommit the memory in a production environment.
I don't know about you, but I would never do this in a production environment. In my mind, it is similar to overclocking a processor; it is trial and error, and if you are wrong you crash the system until you find the sweet spot. I don't believe I would take this chance on any production system. If I am wrong, I just brought down the system and I will have to answer for the downtime. Now for development environments, I would use this scenario, and it really allows you to get the biggest bang for your buck.