I have done a fair amount of SharePoint demos and developement over the past few years, and have always done this on my laptop using Microsoft Virtual Server 2005 or Microsoft Virtual PC, to host and run a SharePoint environment. Last year at Tech-Ed, while I was doing a demo, I had a comment from someone in the audience "Why is SharePoint so slow?" To some degree it makes sense, the specific SharePoint virtual environment which I was using at the time had almost every product known to man installed (the virtual hard drive size was 40GB), as well as being a domain controller and running on a laptop which only had 1GB ram assigned to the virtual machine. However, with the RTM release of Hyper-V (on Windows Server 2008), I wanted to see if performance was better now.
In other words, if I take the exact same virtual machine running on the exact same hardware, but running under Hyper-V as apposed to Virtual Server 2005, would I have a bettter experience? I have therefore taken some time to execute some simple (but in most cases scientific) tests to determine the difference.
Important: before digesting the results, it is very important to understand that these results are not intended to give you any idea of what you will expect from a production environment! You would probably never have this configuration in production i.e. so many products on one VM, and running on a laptop. Rather use these figures to give an indication as to the difference between Virtual Server 2005 R2 and Hyper-V, especially in development and demonstration scenarios.
Okay, now for some results. The web test results are based on the standard collaboration portal with a custom master page (just branding changes). The site consists of a wiki, blog, document center, records center (populated with some Excel services based reports), a search center and some team sites. These were populated with about 50mb of data (documents and list items) across the sites. The results are also based on integrated NTLM authentication with no output caching enabled.
Average requests per second
Wow, in most case around 100% improved performance when using Hyper-V. This result is a summary of all page / document requests across the test script, which was executed for 5, 10 and 20 concurrent users with no think time.
Average page (and document get) response time
Yeah baby, once again around 100% faster, and even better than that, 100% faster while serving double the amount of requests!
Specific task response times
Better than 100% improvement in performance when downloading a PowerPoint document (the document is around 1mb in size). And once again, while serving double the amount of requests.
Yikes, executing a search (in search center) is generally around 200% faster under Hyper-V. And once again, while serving double the amount of requests.
Boot-up, save state, restore from saved state response times
Here I just wanted to measure some of my time wasting activities i.e. booting up the virtual machine (boot up time from switching it on until logon screen shows), saving state and restoring from saved state. In each of these scenarios, you can see that Hyper-V will save you time, a couple of minutes in each of my cases.
When I do demonstrations or development in SharePoint, I will now use Hyper-V. It's one thing having a gut feel that it is faster, but actually getting statistics is really helpful. I could possibly get more performance out of the Hyper-V scenario by assigning the Hyper-V virtual machine more than 2GB of RAM. If I compare each of the scenarios, I can assign more of my laptops 4GB of RAM to the virtual machine using Hyper-V on Windows 2008 over Virtual Server on Vista i.e. Hyper-V on Windows 2008 just gives me more available memory because it doesn't have as many services started by default.
I guess the next step, is to see what the difference is between running MOSS 2007 on Windows Server 2003 and Windows Server 2008...perhaps a future post.
Hope you enjoyed this,