Xen CPU credit scheduler

Asked by Richard Farley

One thing I don't like about Eucalyptus is that you can't take advantage of the CPU credit scheduler capabilities of Xen.

With 12-core Xen host we can let all guest vm's have access to all CPUs and use credit scheduler weighting to set relative priority for each guest. If there are spare cycles available on the host, the guests get to use them - effectively allowing them to burst past their minimum guaranteed CPU resources.

Is this something OpenStack provides?

Thanks!
Richard

Question information

Language:
English Edit question
Status:
Answered
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Armando Migliaccio (armando-migliaccio) said :
#1

To my knowledge there is not such a scheduler available in OpenStack today. However the way the scheduler component has been designed allows anyone to implement and plug in whichever scheduling policing seen fit for the purpose.

You could have a look at the scheduler implementation here:

http://bazaar.launchpad.net/~hudson-openstack/nova/trunk/files/head:/nova/scheduler/

The specific scheduler to use can be set via flags.

Eventually more and more scheduling algorithms will be added to Nova, with a process which I assumed will be governed by the use of blueprints.

Hope this help!

Revision history for this message
Jay Pipes (jaypipes) said :
#2

> Armando Migliaccio proposed the following answer:
> To my knowledge there is not such a scheduler available in OpenStack
> today. However the way the scheduler component has been designed allows
> anyone to implement and plug in whichever scheduling policing seen fit
> for the purpose.
>
> You could have a look at the scheduler implementation here:
>
> http://bazaar.launchpad.net/~hudson-
> openstack/nova/trunk/files/head:/nova/scheduler/

I think that Richard was referring to the dom0's ability to schedule
guests to consume host resources above their designated allotment,
which AFAIK, doesn't have to do with the Nova concept of a scheduler
node, which is the node that schedules tasks coming from the API node
to run on various compute/network workers.

So, I think that Richard wants to be able to use xm sched-credit from
within Nova's virt layer (see
http://wiki.xensource.com/xenwiki/CreditScheduler)

I think this could be added fairly easily. Looks like
/nova/virt/xenapi/vmops.py would be the place to get started...

-jay

Revision history for this message
Richard Farley (drfarley) said :
#3

Thanks Jay, yes that is exactly what I was referring to. The ability use the Xen credit scheduler would be a huge benefit.

Richard

Revision history for this message
Ewan Mellor (ewanmellor) said :
#4

The current code just leaves the scheduling parameters as their default, so all VMs can burst as far as their vCPU count will allow. It would be easy to allow you to configure this though.

How would you like to configure it? An obvious model would be that a given tenant (project) would have a weight, and all VMs belonging to that tenant would be configured with that weight. Alternatively, a given VM size (m1.small, etc) could have an associated weight, and therefore customers buying bigger VMs will get more CPU credit (over and above the fact that larger VMs are likely to have more vCPUs anyway). Or we could combine the two. Any thoughts?

We could take your thoughts here and turn them into a blueprint for a feature request. This is something that we could do pretty easily for the next release.

Can you help with this problem?

Provide an answer of your own, or ask Richard Farley for more information if necessary.

To post a message you must log in.