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:
- 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.
- 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.
- "we use a relative percentage instead of a fixed unit because we want you to be sure you can run a certain number of guests on any CPU." What ?? Who says that my VMs will actually still run when they suddenly get only half of the power they needed, because they were moved to a CPU with half the horsepower ? A reserve is supposed to be a guarantee, a limit is supposed to be just that: a limit. Even the examples they give for using a reserve or a limit would fail. A misbehaving app that sucks CPU, will suddenly be allowed to use even more, just because it's now running on a faster CPU.
- "Not all MHz are the same." That's not a very good reason to use percentages instead, is it. Are they claiming that every % _is_ the same ?