After my recent post on Server Core being the ideal Hyper-V root partition I received some questions regarding my wasted CPU cycles claim. I claimed a Virtual Host running Hyper-V in a Server Core installation would offer more performance than a Virtual Host running Hyper-V in a Full Installation.
I decided to prove my claim and point out to a couple of colleagues that Server Core would beat a Full Installation. My intention was to show the difference using the Windows System Assessment Tool (WinSAT).
Tools I used
I used two identical Dell Dimension 9200 boxes with pure identical hardware, bought in the same period of time and sequential Dell service tags. The systems include a 64bit capable Intel Core Duo 6400 processor with 2GB of RAM and a 320GB SATA hard disk.
I have used these specific systems as part of a group of 4 systems in the past with much pleasure and never saw any difference between any of the four. I used these systems in a course I taught on Windows Server 2008, which is how I knew these systems were capable of running Hyper-V.
I use a third system on which I install Hyper-V as well to get the Hyper-V Management Console to manage both systems remotely. I figured this would make sense, because otherwise you'd see the Hyper-V management console on the Full installation eat up CPU cycles.
I used two DVD's in my test setup:
- Windows Server 2008 Release Candidate 1 with Hyper-V Beta
I use this DVD to install the three servers with the x86-64 version of Windows Server 2008 Enterprise Edition v.735
- Windows Vista Enterprise Edition
I use two DVDs with Windows Vista Enterprise Edition to install Windows Vista as a Virtual Guest on the two Hyper-V servers I'm comparing. I'm fully aware Windows Vista will not be able to be enlightened (yet) which makes the comparison more reliable in my opinion.
My test setup
I installed one of the three boxes with Enterprise Edition (Server Core) and the other two boxes with Enterprise Edition. This resulted in two Full Installations and one Server Core installation. I renamed the two full installations to VirtualHostFull and VirtualManager and the Server Core installation to VirtualHostCore. Note there's no difference in the length of the hostname between the first and the last server.
I installed Hyper-V on the two Full Installations using the roles wizard from Server Manager. On the Server Core Installation I issued the following two commands.
bcdedit /set hypervisorlaunchtype auto
start /w pkgmgr /iu:Microsoft-Hyper-V
I restarted all three machines when they asked for it (that sounded different than how I intended it to sound…) After the reboot they finished their installation of Hyper-V.
I enabled Remote Desktop on both servers I intended to use as Virtual Host to be able to make screenshots of the Task Manager. I did not install the Desktop feature on the Full installation, nor did I change any Page File settings. Both boxes are located on the same subnet on the same switch, getting a DHCP address from the same DHCP Server.
I disabled the firewall on the Server Core installation and the Full installation to make sure I could manage both machines from the VirtualManager box.
I configured a Private Virtual Network on both virtual servers to make sure any virtual guests would not collect updates from Windows Update. (or any other location)
I ejected the Windows Server 2008 DVD from both systems and lay in the Vista DVD. I then defined a Virtual Machine on both Virtual Hosts with the exact same settings. Both machines were configured with 1 Gigabyte of RAM, a 127 GB Hard disk and instructions to install an Operating System from the D: drive. (which represents the DVD drive in both machines)
Comparison 1: Vista Installation
I started both Virtual Guests and installed Windows Vista using the default options (mostly) but tried to keep both Virtual Guests as identical as possible. I ran through the installation questions on the Full installation first and then answered all of the installation questions of the Windows Vista Virtual Guest on the Server Core Virtual Host.
This wasn't very bright since I saw a big difference between installing Windows Vista on the two Hyper-V Virtual Hosts. I can not give exact figures, but then again… there a factor called human interaction involved that cannot be measured well.
The Windows Vista installer on the Server Core overtook the Windows Vista installer on the Full installation when unpacking at around 19%. I finished configuring the hostname, default username, password and default profile on the Server Core-based Virtual Guest and logged on the first time before the Full installation-based Windows Vista even began to ask these questions…
Comparison 2: Windows Vista Performance Index
Immediately after installation I used the link in the Welcome Center to access the Performance Index and clicked to view or print more information.
Since Hyper-V cannot offer Direct-X to Virtual Guests the Performance Index on both machines was 1.0 The Performance index is based on the lowest value, which is related to the performance of the video card, which isn't capable of 3D.
There was a main difference between the two systems though, which is shown below:
The Windows Vista Virtual Guest running on Server Core had a higher value for the same processor in both machines. Where Windows Vista rates the processor with 4.2 on top of Server Core, the same processor gets only rated as 4.1 on top of the Full installation!
Since I have seen Windows Performance Index kick up a couple of notches without any apparent reason I decided to rerun the Performance Index procedure. It didn't change.
Comparison 3: Load in Task Manager
I opened up a Remote Desktop connection from the VirtualManager server to both the Virtual Hosts and captured the Task Manager. You can definitely see where the difference in the Windows Vista Performance Index is coming from:
The Server Core installation typically flatlines, when it has nothing to do, where the processor in the Full installation seems to be busy with something and doesn't drop below 10% CPU usage.
Another interesting find when comparing the two Task Managers is the difference in RAM occupation. In that 256 MB Memory gap you could easily fit in a dedicated Server Core Domain Controller 😉
Did I hear someone mention wasted CPU cycles? 😛
Disclaimer Beta Software
The information on this webpage applies to software from Microsoft that was in testing phase but utilizable by experienced users by the time the webpage was written. This software has not been released for sale, distribution or usage for the general public. The information on this webpage and the beta software are provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.