The Test
Probably the most important aspect of server software, however, is performance. We will take a detailed look at the performance of a virtual server compared to a “real” server and look at any differences that crop up. An important question is how much overhead the virtual machine ends up absorbing, and whether or not this overhead is fixed or variable.
Create Virtual Machine
For the test we set up a virtual server running Windows Server 2003 SP1 with the latest patches, as well as SQL Server 2000 Enterprise SP4. This virtual server was, in turn, running on top of another Windows Server 2003 SP1 with the latest patches. To compare performance, we look at the performance of an ASP.NET database application running on the “real” server versus the “virtual” server.
To best gauge and compare any overhead bottlenecks, we used a relatively slow server as the test bed:
Manufacturer | HP |
Processor | Pentium 4 2.0 Ghz |
RAM | 512 MB DDR1 |
OS Hard Drive | 40 GB 7200 RPM, IDE |
Virtual Operating System | Windows Server 2003 SP1 |
Real Operating System | Windows Server 2003 SP1 |
Virtualization Software | Virtual Server 2005 |
Database Software | SQL Server 2000 Enterprise |
The rationale in using a slow server is that any performance problems will be easier to detect. In addition, Virtual Server is meant as a consolidation tool and therefore is likely to be deployed onto previous generation servers in many cases.
Virtual/Real Resource Allocation
The application we used was actually the BentUser website. BentUser is powered by alloyCMS.NET an ASP.NET-based content management system. All of the content and metadata are stored in a database which is queried for each request, in some cases several times. The application and a local copy of the content database were installed on the virtual and real servers.
It is important to note that this is not a test of the speed or efficiency of Windows Server or ASP.NET. Rather, it is meant as a real-world comparison between virtual and real servers in Virtual Server.