[openstack-dev] [nova] schedule instance based on CPU frequency ?

Chris Friesen chris.friesen at windriver.com
Thu Jul 16 06:06:35 UTC 2015

On 07/15/2015 04:57 PM, Dugger, Donald D wrote:
> In re: Static CPU frequency.  For modern Intel CPUs this really isn't true.
> Turbo Boost is a feature that allows certain CPUs in certain conditions to
> actually run at a higher clock rate that what is advertised at power on (the
> havoc this causes code that depends upon timing based upon CPU spin loops is
> left as an exercise for the reader :-)

Reasonably recent machines have constant rates for the timestamp counter even in 
the face of CPU frequency variation.  Nobody should be using bare spin loops.

> Having said that, I think CPU frequency is a really bad metric to be making
> any kind of scheduling decisions on.  A Core I7 running at 2 GHz is going to
> potentially run code faster than a Core I3 running at 2.2 GHz (issues of
> micro-architecture and cache sizes impact performance much more than minor
> variations in clock speed).  If you really want to schedule based upon CPU
> capability you need to define an abstract metric, identify how many of these
> abstract units apply to the specific compute nodes in your cloud and do
> scheduling based upon that.  There is actually work going to do just this,
> check out the BP:
> https://blueprints.launchpad.net/nova/+spec/normalized-compute-units

I agree with the general concept, but I'm a bit concerned that the "normalized" 
units will only be accurate for the specific units being tested.  Other 
workloads may scale differently, especially if different CPU features are 
exposed (potentially allowing for much more efficient low-level instructions).


More information about the OpenStack-dev mailing list