Eric Horschman of VMware recently posted on his blog about the ESX memory overcommitment feature. It can be a utilization benefit in some use cases, especially with lightly used virtual desktops. But Eric describes it as if it’s somehow a game-changing economy.
The test he uses to support the claim is very impressive – if what you want to do is to power on virtual machines. If you’re going to look at their screensavers all day while you do your work with a pencil and paper and abacus, power-on statistics are meaningful. And the moment you power on is the time you get the most out of page-sharing: nearly all pages are either operating system and services code pages (which are identical from guest to guest in many cases) or all-zero (which are all initially mapped to the same physical page).
Unfortunately for this scenario, I like to use my computer. I may push it a little further than some, but… I currently have a 20000-message Outlook mailbox and a 25000-message Thunderbird mailbox open, a 60-page Word doc, a 260-page PDF, five different browser tabs with graphics-intensive web pages… and, oh, yeah, I’m playing music in iTunes too. Not so much page sharing going on any more – in fact, I’m using 2GB on my 2GB notebook pretty consistently. And since now only 15% or so of my machine is running pages that it has in common with other people’s machines – unless, of course, our tastes in music and our correspondence are identical – well, how do you think all that page sharing is really working out?
What do you think happens when those pages start to un-share, as people start doing real work? How big do you need to expand those balloons, and how much do you have to starve those guests, to keep your 5:1 memory allocation? And if you can’t balloon 5:1, how much do you further degrade it when you start using the hypervisor swap file?
(Besides, try those numbers again with XenServer Standard Edition at $900 for the license and first year’s Subscription Advantage, with 8GB or even 16GB in the system, versus ESX at 4GB, instead of adding servers, and see how both the cost and the user satisfaction come out.)
This is a stunt, showing penny-wise savings of an inexpensive resource (memory) at the pound-foolish cost of an expensive resource (user time and patience).
It’s all about the applications and their performance; minor cost savings don’t matter much in the face of user revolt.