we have a windows server 2012 enviroment with two hyper-v servers.

Each of them has two 16 Core AMD CPU's, eight 16GB DDR3 ECC RAM modules, 10 HDD's in HW-Raid 6.

Now Hyper-V is running and some VM's are up. But the VM's have a very poor CPU performance.

One VM has 24 vCPU's and 80GB RAM (as well Windows Server 2012). But if I start Prime95 in this machine the vCPU counters are all at 100% - the Host idles by 3%. Logically, the result of the prime-number-test needs ~12 times longer than the host itself.

(RAM-Speed and HDD-Speed are great)

Has anyone an idea what's wrong here?

I am grateful for every advice!

Things I have tried:

  • Disable NUMA
  • More priority for this VM
  • Update VM integration tools
  • Installed all updates
  • Enable "maximum performance"-Energy setting on host and vm

I would try reduce the number of assigned CPUs for that VM, go as low as 4 then 8 and compare your results. I've seen this on many virtual systems, the assignment of a large number of virtual cores reduces the actual cpu availability. My only assumption here is that hosts expect a higher number of guests with smaller CPU assignments versus 1 or 2 hosts.

  • I would agree with this - its counter-intuitive to people used to working with physical cores where more means better, but assigning CPU cores to virtual guests is more of a balancing act than a case of just turning the dial up to 11, and guest performance is often actually helped by reducing the number of cores assigned to the guest. As always, the unfashionable answer is that people need to test the different scenarios and see how they work for their particular workload. – Rob Moir Sep 18 '13 at 11:26

Virtualization is used to share hardware resources between virtual host that can't/don't use efficiently these resources. Using virtualization often means to loss between 5 to 10% of hardware resources due to virtualization overhead.

You are nearly using all available resource with just one VM. I think you want high availability for your application, expecting it as a vm to failover to the other hyper-V in case of hardware/host issue. Am i right ?

Except if your application is not able to work in Failover/cluster mode (or can't pay license), i suggest to switch to these models instead of virtualization.

Else you can also check: -upgrade bios on physical servers -Apply suggested patch from here -check again with fewer CPU if the gap is still that bad

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.