Posts Tagged ‘vhd’

Updated: ESXi vs. Hyper-V Performance

November 15th, 2008 by Paul Sterley | 4 Comments | Filed in ESXi, Hyper-V, Virtualization

I must state that these are my personal findings only, and are by no means comprehensive or conclusive. I’m sure that both Microsoft and VMware can produce official looking white-papers with impressive benchmark numbers, each proving that their solution is faster. My testing is nowhere near that scientific or exhausting.

However, I believe they are good real-world examples for small  to medium businesses. With a little more spending, better performance and reliability can be had with SAS disks, caching RAID controllers and so on, but this is a good baseline to start with.

My Test Platform:

  • Intel Q6600 Core 2 Quad 2.40GHz CPU
  • Intel BOXDG33BUC motherboard with ICH9DH
  • System BUS Speed: 1066MHz
  • System Memory Speed: 800MHz
  • L2 Cache RAM: 2×4096
  • Total Memory: 8192KB
  • Memory Mode: Dual Channel
  • (Qty 4 Corsair CM2×2048-6400C5 memory modules)
  • ATA/IDE Mode: Native
  • Configure SATA as: IDE
  • Hard Disk: WDC WD1001FALS-00J7B0 7200RPM 30.G 32MB Cache 1.0TB SATA
  • Hard disk is connected directly to onboard SATA port.

I set up answer files for a fully unattended SBS 2008 setup, from initial boot to the final SBS Welcome Screen. I installed it multiple times to make sure the numbers were consistent. These are the load times:

ESXi: 63 minutes
Hyper-V: 59 minutes
Hyper-V with AHCI/NCQ enabled: 57 minutes

The next round of testing was a straight file copy from one virtual disk to another virtual disk, locally. I had heard from an unreliable source that ESXi’s I/O caps out at 10MB/s, and I undertook to prove or disprove it.

TEST 1: Windows Server 2003 R2 on ESXi
Loaded ESXi with default settings on the 1TB disk.
Created a VM with 2 CPUs, 1GB RAM, two 100GB disks.
Loaded Windows Server 2003 R2 32-bit on the first 100GB virtual disk.
Loaded Windows Server 2003 SP2.
Loaded VMware Tools.
Disabled the screen saver.
Copied 20GB of MP3 files from a network location to the first 100GB disk.
Partitioned and formatted the second 100GB disk.
Copied the MP3 data using robocopy.exe from the first disk to the second disk.

Timed the local copy operation: 10:15 (minutes:seconds)
Looked at ESXi performance monitor during the copy operation:
  Disk Usage (Average): 48000 KBps (48 MBps)
  Disk Write Rate: 29000 KBps (29 MBps)
  Disk Read Rate: 18000 KBps (18 MBps
)

Test 2: Windows Server 2008 on ESXi
Created a VM with 2 CPUs, 4GB RAM, two 100GB disks.
Loaded Windows Server 2008 Standard Edition 32-bit on the first 100GB virtual disk.
Disabled the screen saver.
Copied 20GB of MP3 files from a network location to the first 100GB disk.
Partitioned and formatted the second 100GB disk.
Copied the MP3 data using robocopy.exe from the first disk to the second disk.

Timed the operation: 9:55 (minutes:seconds)
Looked at ESXi performance monitor during the copy operation:
  Disk Usage (Average): 46000 KB/s (46 MB/s)
  Disk Write Rate: 27000 KB/s (27 MB/s)
  Disk Read Rate: 20000 KB/s (20 MB/s)
Looked at Windows 2008’s performance monitor during the copy operation:
The “Disk” counter averaged about 35 MB/s.
The CPU counter averaged about 55%.

TEST 3: Windows Server 2003 R2 on Hyper-V
Loaded Hyper-V (standalone, free product) with default settings.
Created a VM with 2 CPUs, 1GB RAM, two 100GB disks.
  Note: I set these disks to Dynamically expanding. ESXi appears to allocate the entire disk size, but it happens to quickly to be doing a full disk write like Hyper-V does when doing a fixed disk size. So I believe this setup makes it an apples-to-apples comparison. I read some data from an independent source showing that except for random 4k reads, the performance is not that much different from a dynamic to a fixed VHD in Hyper-V.

Loaded Windows Server 2003 R2 32-bit on the first 100GB virtual disk.
Disabled the screen saver.
Installed Windows Server 2003 SP2.
Installed Hyper-V Integration Components
  Note: Windows 2003 would not even see the network without this.
Copied 20GB of MP3 files from a network location to the first 100GB disk.
Partitioned and formatted the second 100GB disk.
Copied the MP3 data using robocopy.exe from the first disk to the second disk.

Timed the operation: 8:47 (minutes:seconds)
I could not find a performance chart other than “perfmon” (which I’ve never spent the time to make sense of) to look at. I figure the time is a good enough comparison.

Test 4: Windows Server 2008 32-bit on Hyper-V
Created a VM with 2 CPUs, 4GB RAM, two 100GB disks.
Loaded Windows Server 2008 Standard Edition 32-bit on the first 100GB virtual disk.
Disabled the screen saver.
Copied 20GB of MP3 files from a network location to the first 100GB disk.
Partitioned and formatted the second 100GB disk.
Copied the MP3 data using robocopy.exe from the first disk to the second disk.

Timed the operation: 8:32 (minutes:seconds)
Looked at Windows 2008’s performance monitor during the copy operation:
The “Disk” counter averaged about 40 MB/s.
The CPU counter averaged about 10%.

 

There is not a huge performance difference between the two platforms for the small business with one VM running. How they scale and handle oversubscribed memory and CPU utilization is a topic for someone with more time and patience than I have available.

However, their ease of use, and their handling of snapshots is VERY different.

Click here for information about Hyper-V’s snapshot handling issues.

Click here for a comparison of the ease of installation and usage.

Note: This post used to contain some comments from another individual about performance. However, the commenter did not give any references, real world examples, nor did he leave an e-mail address or subscribe to comment notifications. So, the data could be verified and the discussion could not continue. In fact, it looked very much like the sort of unsubstantiated “what I like is better” crap you find so readily on the internet from uninformed individuals. This one resorted to insulting the competitor’s product, and seemed to have his nose firmly embedded in his favorite vendor’s crack. So, I have removed the comment on the grounds that it did not meaningfully contribute anything – except perhaps to provide the impetus I needed to get around to doing more extensive testing. That’s the only good that came of it.

Tags: , , , , ,