Microsoft Hyper-V 2.0 – NO Memory Overcommit!

Well this is quite interesting. In the latest round of marketing bullshit from Microsoft, they do a “myth busting” of some of VMware’s marketing. Which is all well and good, what kind of society would we live in if you couldn’t freely and openly comment on anything in the public domain.

But what’s interesting about this one, besides the fact that they continually refer to a product that is some 6-9 months away from actually being released, is that in trying to downplay the usefulness of memory overcommit they are inadvertently announcing that memory overcommit will not be available in Hyper-V 2.0. Otherwise, they would be talking it up like they are with Live Migration. We should all download this video, and save it for the time when Microsoft actually do have the feature and are busily espousing the virtues of memory overcommitment. Just like they did with Live Migration.

But on the topic of memory overcommitment, allow me to bust back on their myth bust. To see what I’m talking about, skip forward to around 6 minutes 20 secs into the video, where they attempt to bust myth #8 “Memory Overcommitment”.

Firstly, performance of all VM’s does not _necessarily_ suffer if all VM’s want to use all their memory and you have overcommitted. Assuming you are running all Windows XP or Server 2003 guests on a particular host, the few hundred MB of kernel memory per VM that will be nearly identical will still be saved with no performance overhead via page sharing, even if every VM wants to use all of their user mode memory and there are no page sharing opportunities found in that user mode memory (itself very unlikely). So even if I could only overcommit ~200MB of memory per VM, that’s still a difference of ~3GB of RAM on a box that I’m running 15 VM’s on. Which effectively means I don’t need to worry about taking VMkernel or VMM memory overhead into consideration when sizing a box. With Hyper-V, you will need to.

Next, memory overcommit isn’t only useful “in specific scenarios” as the speakers suggest, it’s the other way around – the scenarios where you don’t want to overcommit are specific. Generally speaking, overcommit will be very useful for the majority of workloads whose memory usage varies throughout the day. Even for those workloads that do actively use all their memory, do they have this behaviour 24 X 7? No! It’s more likely 12 x 5 at best! Which brings me onto…

Distributed Power Management. Without the ability to overcommit memory, you could have a cluster of 10 servers all sitting there powered on, each one only using 10% CPU for the 12 hours (or more) per day of non-peak activity during the week. But you won’t be able to consolidate all those VM’s onto 2 or 3 hosts and power the rest off like you can if you have DPM enabled, because with Hyper-V you’ll still need the 10 hosts worth of RAM you’ve provisioned to those VM’s. What kind of green datacenter initiative is that? How much more is that going to cost in terms of power and cooling each year? Microsoft can talk all they like about hot add / remove of memory to VM’s in order to try and get around this limitation, but the fact is that this will only work with Server 2008 guests. How many of those are out there in the enterprise currently? That’s right, fuck all.

So all in all, this is a fucking embarrassment for Microsoft, because it’s not a couple of marketing pawns who got thrown in front of a video camera to talk about something they clearly don’t understand. The guy in the green shirt is David Greschler, the “Director of Virtualisation Strategy” for Microsoft. This guy co-founded Softricity, and he’s trying to tell us that memory overcommit is some kind of niche feature that is only useful in specific scenarios, therefore not really useful at all? What the fuck was Softricity when he co-founded it? If he directs the virtualisation strategy for Microsoft, and you choose to run Hyper-V, you are effectively entrusting the virtualisation strategy of your business to this guy. I don’t know about you, but just thinking about that scares the living shit out of me.

Perhaps instead of wasting time with marketing bullshit, he could “direct” Microsoft software engineers to papers like this and this, that they may actually try to build a feature into Hyper-V that might be better than what VMware has to offer. But sadly, that seems to be something truly in the realm of myth and fairy tale.

Thanks to Steve Chambers and ipHouse for the heads up on this.

Advertisements

6 Responses to “Microsoft Hyper-V 2.0 – NO Memory Overcommit!”

  1. Microsoft Hyper-V "mythbusting video" busted :: h0bbel.p0ggel.org Says:

    […] Gabe posted “When myth busting goes wrong and becomes a myth to bust it self” Stu posted “Microsoft Hyper-V 2.0 – NO Memory Overcommit!” […]

  2. gorto Says:

    The Memory Over-commit feature is pretty essential.
    Without it, you’re deficient of a major benefit of virtualisation – wake up to it Citrix, M$ and others.

  3. Virgil Says:

    Stu,

    Maybe it’s because you are a fellow Australian (at heart) or just because you cut through the bullsh*t, but your posts really resonate with me.

    Virgil

  4. stu Says:

    Heheh thx for kind words Virgil, and I’m still 100% Aussie – I’ve been gone less than 2 years and will never give up my passport 🙂

  5. Why Choose VMware and Microsoft’s Supposed Mythbusting - Storage Informer Says:

    […] vinternals: Microsoft Hyper-V 2.0 – NO Memory Overcommit! […]

  6. Interesting Hyperv vs ESX VM density link…. @ VMWare Hero Says:

    […] http://vinternals.com/2009/04/microsoft-hyper-v-20-no-memory-overcommit/ Uncategorized […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: