On Wed, Apr 16, 2014 at 5:01 PM, Klaus Aehlig <[email protected]> wrote: > This design proposes to add relative CPU speed as a > resource to be used in the Ganeti resource model. > Implementing this design will solve issue 539. > > Signed-off-by: Klaus Aehlig <[email protected]>
LGTM Thanks, Guido > --- > Makefile.am | 1 + > doc/design-cpu-speed.rst | 43 +++++++++++++++++++++++++++++++++++++++++++ > doc/design-draft.rst | 1 + > 3 files changed, 45 insertions(+) > create mode 100644 doc/design-cpu-speed.rst > > diff --git a/Makefile.am b/Makefile.am > index 5be9d1c..3657014 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -556,6 +556,7 @@ docinput = \ > doc/design-chained-jobs.rst \ > doc/design-cmdlib-unittests.rst \ > doc/design-cpu-pinning.rst \ > + doc/design-cpu-speed.rst \ > doc/design-daemons.rst \ > doc/design-device-uuid-name.rst \ > doc/design-draft.rst \ > diff --git a/doc/design-cpu-speed.rst b/doc/design-cpu-speed.rst > new file mode 100644 > index 0000000..ec8634d > --- /dev/null > +++ b/doc/design-cpu-speed.rst > @@ -0,0 +1,43 @@ > +=============================================== > +Taking relative CPU and disk speed into account > +=============================================== > + > +.. contents:: :depth: 4 > + > +This document describes the suggested addition of a new > +node-parameter, describing the CPU speed of a node, > +relative to that of a normal node in the node group. > + > + > +Current state and shortcomings > +============================== > + > +Currently, for balancing a cluster, for most resources (disk, memory), > +the ratio between the amount used and the amount available is taken as > +a measure of load for that resources. As ``hbal`` tries to even out the > +load in terms of these measures, larger nodes get a larger share of the > +instances, even for a cluster not running at full capacity. > + > +For for one resources, however, hardware differences are not taken into > +account: CPU speed. For CPU, the load is measured by the ratio of used > virtual > +to physical CPUs on the node. Balancing this measure implictly assumes > +equal speed of all CPUs. > + > + > +Proposed changes > +================ > + > +It is proposed to add a new node parameter, ``cpu_speed``, that is a > +floating-point number, with default value ``1.0``. It can be modified in the > +same ways, as all other node parameters. > + > +The cluster metric used by ``htools`` will be changed to use the ratio > +of virtual to physical cpus weighted by speed, rather than the plain > +virtual-to-physical ratio. So, when balancing, nodes will be > +considered as if they had physical cpus equal to ``cpu_speed`` times > +the actual number. > + > +Finally, it should be noted that for IO load, in non-dedicated Ganeti, the > +``spindle_count`` already serves the same purpose as the newly proposed > +``cpu_speed``. It is a parameter to measure the amount of IO a node can > handle > +in arbitrary units. > diff --git a/doc/design-draft.rst b/doc/design-draft.rst > index 7023901..55bed7c 100644 > --- a/doc/design-draft.rst > +++ b/doc/design-draft.rst > @@ -22,6 +22,7 @@ Design document drafts > design-move-instance-improvements.rst > design-node-security.rst > design-systemd.rst > + design-cpu-speed.rst > > .. vim: set textwidth=72 : > .. Local Variables: > -- > 1.9.1.423.g4596e3a > -- Guido Trotter Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores Steuernummer: 48/725/00206 Umsatzsteueridentifikationsnummer: DE813741370
