Sunday, July 27, 2008

Hyper-V is definitely NOT for workstations

EDIT: The multimedia performance problems described below turned out to be a display driver issue with nvidia having some kind of conflict with Hyper-V. Downgrading to Windows XP drivers cured this for me.

Also, the very minimal performance testing I did previously (start-up time of a Windows XP VM in Hyper-V) was a bit apples-to-oranges as I installed a fresh copy of WinXP under Hyper-V. Since I already reinstalled Hyper-V to test out the display drivers fix, I decided to do a better comparison. This time I converted my VMware VM to a Hyper-V VM (minimal services set to start and all) and found startup time on par with VMware workstation, maybe a few seconds faster.

My only roadblock to using Hyper-V now is the lack of wireless NIC support.

I’m at a point in my current project where I need to test out automated installs on different OSes at various states (totally clean, .net framework installed, our software already installed, etc).  Having just moved to Win2k8 on my workstation, I decided to give Microsoft’s new paravirtualization product, Hyper-V, a shot.

I’m a pretty big VMware fan.  I use VMware Workstation on a daily basis and also used their free VMware Server product before they switched over to the clunky web-only interface in v2.  Microsoft’s Virtual PC and Virtual Server offerings never compared with even the free VMware Server, as far as features and performance were concerned.  It was even worse when you take into account Workstation’s killer snapshot management.  Hyper-V (essentially $28 when bundled with Win2k8) was supposed to bring everything much more in parity with VMware’s enterprise offerings.  I was excited to try it out.

That didn’t last long though, as I soon discovered that Hyper-V doesn’t support binding to wireless NICs.  There are some painful workarounds involving binding your wireless NIC to the virtual NIC, or using ICS on your wireless NIC to share it out to the virtual NIC.  Both are kludgy and neither were very stable for me.

The real killer though was how much host performance suffered.  When the Hyper-V role is installed on Win2k8, the hypervisor stack is installed underneath the host OS stack and the host essentially becomes a virtualized environment, just like any other VM.  This is great for the server environments that Hyper-V is intended for, but for a workstation where you want interactivity, it means pretty noticeable performance degradation.  Videos that would normally load up and play instantly would hang for 5-10 seconds before playing, and even then, the audio and video would stutter for the first few seconds.  Performing other activities involving reasonable disk I/O (such as copying files) would make the audio and video stutter more.  Scrolling applications, which are smooth without Hyper-V, are jerky when virtualized (reminded me a lot of scrolling on a remote desktop session).

Granted, Hyper-V isn’t designed for workstation use, just like Win2k8 server, but for IT pros/Developers who have switched toWin2k8 for their workstation regardless, stick with VMware.  It provides more features and better host performance.  Guest performance seems remarkably better as well (a WinXP VM that takes 13 seconds avg to boot to a desktop under VMware took 24 seconds avg under Hyper-V).  I’m not really sure I see the benefit Hyper-V provides, at this point.

8 comments:

Zac B. said...

Although the some of your points are accurate, they are all a bit miss leading. For your first point on Wireless access, there is a good point on why it isn't enabled by default. And if you want it working it really isn't hard, it is just a few steps and never fails. http://blogs.msdn.com/virtual_pc_guy/archive/2008/01/09/using-hyper-v-with-a-wireless-network-adapter.aspx
That is the VPC Guy with a walkthrough.

Now, for your points on performance, I too am experiencing this. I can't stand it! But we in a few forums have narrowed this down to the Hyper-V RC1 and RTM update. Pre-RC1 installs worked flawlessly with everything (as a workstation). Even now with the weird hiccups I do have the ability to run Crysis beautifully, etc. They really need to fix whatever it is that was changed. If you are interested in a good thread go here:
http://forums.technet.microsoft.com/en-US/winserverhyperv/thread/4e1c53f5-0400-4ca9-8819-f942c10881c1/

Mikey Cooper said...

I can't use ICS between my wireless and my wired nics (or bridging or network routing for that matter) because I already use my workstation for VPN, have private lans on my wired port, and DHCP already running. All of this interferes when I try any of the random solutions out there. I need to be able to just have a vm nic bridged to my wireless nic, which Hyper-V won't do. The solutions are ICS, setting up routing services, or bridging the wireless nic to a wired nic, etc, all of which I consider kludges to get Hyper-V to do something it doesn't want to. They don't work in my specific scenario, which makes it painful. So not sure why my point's misleading there. ;)

Thanks for the heads up on the thread! I'll keep tabs on it!

zac b said...

Did you check out the VPC Guy's wireless walkthrough? When you add the virtual network and then add it to your virtual machine it creates it's on network connection. You then just share (or bridge) which ever adapter's connection to the virtual adapter. This could be for wired or wireless adapters. VPN, DHCP, I don't see how this isn't a simple fix? You could add 2 or 3 virtual network adapters receiving a network share from different physical adapters. Then you could have VPN, internet, wireless internet, some play dns/dhcp server all connected separately to the virtual machine.

Mikey Cooper said...

I did try bridging the virtual network adapter and my wireless nic and found it caused issues with my DNS Server no longer answering requests and not being able to restart upon bootup. My DHCP server suddenly stopped responding to DHCP requests on the network.

The main point is that I don't want to have to do kludgy workarounds like that, ones that have the potential to cause all kinds of issues to services that bind to NICs. I'd rather just have my workstation virtualization product able to bind to a wireless NIC.

Anonymous said...

Regarding performance.
IF you have hardware VM support and 8GB ram then it will absolutely crush anything. Prformance is way beyond anthing I ever expected from MS.
For example running 2003 straight on hardware is about 1/4 the performance of running 2003 in hyper-v

Mikey Cooper said...

@Anonymous: I have 8GB and so far have found performance to be pretty much on par with VMware Workstation 6.

Not sure what you mean by "hardware VM support", but I have Intel VT obviously as it's required to use Hyper-V. Workstation takes advantage of VT too, so I'm not seeing a huge difference.

singleinottawa said...

@Mikey - I definitely agree with You that after having used Hyper-V for about 2 months, it appears that I'm getting way below par performance on my workstation 2k8. No matter what MS says regarding Hyper-V role restriction etc, the fact of the matter is that it slowed the host down from a Dual Core2 to a Single Core P3 (at least that's what I'm seeing). Opening up any application will practically pause everything for quite a few seconds before resuming.

Mikey Cooper said...

@singleinottawa: Sounds like you may be having the same video driver issue I did. Check out this thread at TechNet: http://social.technet.microsoft.com/Forums/en-US/thread/4e1c53f5-0400-4ca9-8819-f942c10881c1/

It's a bit long, but worth wading through. I reverted back to the Windows XP 64-bit driver from Nvidia and it resolved my Hyper-V issue, but I did lose Aero.