Hyper-V CPU Scheduling–Part 4

Hyper-V CPU Scheduling–Part 4

Rate This
  • Comments 2


Now that I have discussed the various CPU resource controls that are available for Hyper-V virtual machines – I thought I would take a moment to answer a couple of the common questions I have heard about CPU resource control:

Can you use the virtual machine limit, reserve and relative weight all at the same time?  And what actually happens?

Yes, you can.  By default all of these controls are effectively disabled – but you can configure all of them at the same time.  The way they interact is that the reserve defines the lower bound of CPU resource, the limit defines the upper bound, and the relative weight affects how CPU is handled between these two bounds.

That said – I do not know of anyone who actually uses all three on a regular basis.  Most people use one or maybe two of the controls.

Why do you use percentage for the limit and reserve – and not MHz / GHz?

Many people find it easier to think in MHz / GHz rather than percentage of a physical computer.  They also argue that using a percentage means that as you move a virtual machine from computer to computer you may get different amounts of resource depending on the underlying capability.

This is something that has been discussed extensively on the Hyper-V team, and while I do believe there is some merit in this approach, there are a number of reasons why we chose to use a percentage instead.  Two key ones are:

 

  1. Predictable mobility

    If all your virtual machines have a reserve of 10% – you know that you can run 10 of them on any of your servers.  The same would not be true if they all had a reserve of 250Mhz.  Given how important virtual machine mobility is to our users – we believe that this is something that needs to be easy to manage.

  2. Not all MHz are the same

    1GHz on a Pentium IV is much slower than 1GHz on a Core i7.  Furthermore – newer processors tend to be more efficient at virtualization than older processors, so the difference between the “bang for buck” that you get out of each MHz varies greatly between processor types.  This means that in reality – defining a reserve or limit in MHz / GHz does not really give you a great performance guarantee anyway.

Okay, there is more that I could say here – but I will leave that for another day.

Cheers,
Ben

Leave a Comment
  • Please add 7 and 8 and type the answer here:
  • Post
  • Hello

    i try out a simple test

    I have a IBM X3650 with 24 cores (12 cores + HT) + 32GB Ram DDR3 to the host OS were Hyper-V role is installed

    Created a VM with windows server 2008 with 4Vcores and Virtual machine reserve to 80%

    I did a simple test that loaded an application that eats all cpu (HyperPi) it simply overloads the cups to 100%

    on the Host Hyper-v I should see the Physical CPUs eating up resources like i see on the VM but no its always at 2%-3% and i only see 1-2 cores with same workload wen the VM is at 100%

    If i create a VM in a good server i want that VM to be able to take advantage of the full power of my hardware but i don’t seem to be able:?

    The question is how do i make available to a specific VM the full Power of the machine he is running on ???

  • I understand that i only have 12 real cores and not 24.

    I was trying to install SQL Server 2008 r2 and take like 80% of the machine resources in high workloads

    One of my main objectives of the VM's is be able to move the vm's between servers

    but instance this server will only have one vm and it would be great if the vm could take advantage of a lot of the power under the hood

    it’s like we have a Ferrari but we can’t run it full speed not even 10 % of its power

    is there any way i can give more processing resources to this VM?

    Thank you

    Best Regards

Page 1 of 1 (2 items)