On Fri, Sep 27, 2013 at 4:22 PM, Spyros Trigazis <[email protected]> wrote:
> > Στις 27 Σεπ 2013, 4:20 μ.μ., ο/η Michele Tartara <[email protected]> > έγραψε: > > On Fri, Sep 27, 2013 at 12:01 PM, Spyros Trigazis <[email protected]>wrote: > >> Update hail, hbal and htools man-pages to include the use of data >> provided by MonD. >> >> Signed-off-by: Spyros Trigazis <[email protected]> >> --- >> man/hail.rst | 23 +++++++++++++++++++++++ >> man/hbal.rst | 28 +++++++++++++++++++++++++++- >> man/htools.rst | 19 +++++++++++++++++++ >> 3 files changed, 69 insertions(+), 1 deletion(-) >> >> diff --git a/man/hail.rst b/man/hail.rst >> index 72733a2..9efe16d 100644 >> --- a/man/hail.rst >> +++ b/man/hail.rst >> @@ -27,6 +27,10 @@ on stderr and the exit code is changed to show failure. >> If the input file name is ``-`` (a single minus sign), then the request >> data will be read from *stdin*. >> >> +Apart from input data, hail collects data over the network from all >> +MonDs with the --mond option. Currently it uses only data produced by >> +the CPUload collector. >> + >> ALGORITHM >> ~~~~~~~~~ >> >> @@ -75,6 +79,25 @@ The options that can be passed to the program are as >> follows: >> in the JSON request itself. This is mostly used for debugging. The >> format of the file is described in the man page **htools**\(1). >> >> +\--mond >> + If given the program will query all MonDs to fetch data from the >> + supported data collectors over the network. >> + >> +\--mond-data *datafile* >> + The name of the file holding the data provided by MonD, to override >> + quering MonDs over the network. This is mostly used for debugging. >> + The file must be in JSON format and present an array of JSON objects >> + with two pairs, one for every node. The first pair is the name of the >> + node and the second is an array of report objects. Further information >> + about the format of the report object can be found in the Ganeti >> + Monitoring Agent design document. >> + >> +\--ignore-dynu >> + If given, all dynamic utilisation information will be ignored by >> + assuming it to be 0. This option will take precedence over any data >> + passed by the MonDs with the ``--mond`` and the ``--mond-data`` >> + option. >> + >> \--simulate *description* >> Backend specification: similar to the **-t** option, this allows >> overriding the cluster data with a simulated cluster. For details >> diff --git a/man/hbal.rst b/man/hbal.rst >> index 218ff56..77748f3 100644 >> --- a/man/hbal.rst >> +++ b/man/hbal.rst >> @@ -58,6 +58,10 @@ reasonably fast. It is not, however, designed to be a >> perfect algorithm: >> it is possible to make it go into a corner from which it can find no >> improvement, because it looks only one "step" ahead. >> >> +The program accesses the cluster state via Rapi or Luxi. It also >> +requests data over the network from all MonDs with the --mond option. >> +Currently it uses only data produced by CPUload collector. >> + >> By default, the program will show the solution incrementally as it is >> computed, in a somewhat cryptic format; for getting the actual Ganeti >> command list, use the **-C** option. >> @@ -121,6 +125,7 @@ following components: >> primary instances of the node) >> - standard deviation of the dynamic load on the nodes, for cpus, >> memory, disk and network >> +- standard deviation of the CPU load provided by MonD >> >> The free memory and free disk values help ensure that all nodes are >> somewhat balanced in their resource usage. The reserved memory helps >> @@ -159,6 +164,13 @@ different), and that they are normalised to between >> zero and one. Note >> that it's recommended to not have zero as the load value for any >> instance metric since then secondary instances are not well balanced. >> >> +The CPUload from MonD's data collector will be used only if all MonDs >> +are running, otherwise it won't affect the cluster score. Since we can't >> +find the CPU load of each instance, we can assume that the CPU load of >> +an instance is proportional to the number of its vcpus. With this >> +heuristic, instances from nodes with high CPU load will tend to move to >> +nodes with less CPU load. >> + >> On a perfectly balanced cluster (all nodes the same size, all >> instances the same size and spread across the nodes equally), the >> values for all metrics would be zero. This doesn't happen too often in >> @@ -320,7 +332,8 @@ The options that can be passed to the program are as >> follows: >> \--ignore-dynu >> If given, all dynamic utilisation information will be ignored by >> assuming it to be 0. This option will take precedence over any data >> - passed by the ``-U`` option. >> + passed by the ``-U`` option or by the MonDs with the ``--mond`` and >> + the ``--mond-data`` option. >> >> -S *filename*, \--save-cluster=*filename* >> If given, the state of the cluster before the balancing is saved to >> @@ -336,6 +349,19 @@ The options that can be passed to the program are as >> follows: >> other backends must be selected. The option is described in the man >> page **htools**\(1). >> >> +\--mond >> + If given the program will query all MonDs to fetch data from the >> + supported data collectors over the network. >> + >> +\--mond-data *datafile* >> + The name of the file holding the data provided by MonD, to override >> + quering MonDs over the network. This is mostly used for debugging. >> + The file must be in JSON format and present an array of JSON objects >> + with two pairs, one for every node. The first pair is the name of the >> + node and the second is an array of report objects. Further information >> + about the format of the report object can be found in the Ganeti >> + Monitoring Agent design document. >> + >> -m *cluster* >> Backend specification: collect data directly from the *cluster* given >> as an argument via RAPI. The option is described in the man page >> diff --git a/man/htools.rst b/man/htools.rst >> index ecd5ece..16e0b94 100644 >> --- a/man/htools.rst >> +++ b/man/htools.rst >> @@ -219,6 +219,25 @@ support all options. Some common options are: >> - vcpu ratio >> - spindle ratio >> >> +\--mond >> + If given the program will query all MonDs to fetch data from the >> + supported data collectors over the network. >> + >> +\--mond-data *datafile* >> + The name of the file holding the data provided by MonD, to override >> + quering MonDs over the network. This is mostly used for debugging. >> + The file must be in JSON format and present an array of JSON objects >> + with two pairs, one for every node. The first pair is the name of the >> + node and the second is an array of report objects. Further information >> + about the format of the report object can be found in the Ganeti >> + Monitoring Agent design document. >> > > In general, we don't want to refer to design documents, because they are > meant for developers and not for end users, therefore they might > theoretically also not be distributed at all. > What should be done here, is following the approach of the > doc/monitoring-query-format.rst file: the part of the design document > describing the format is extracted into a separate file, and then included > with the > .. include:: > directive both in the Monitoring Agent design document and in this manpage. > > > The syntax for the man pages is the same? Although I don't get any errors, > the > content of the included file doesn't show up. > Yes, it should be the same. I know of no difference for man pages. > > Where I should include it? Directly after --mond-data option? > That would be the most convenient thing, but I think it would be "too much" text, added there. Probably adding a new subsection after all the parameters and then a reference here is better. > > >> + >> +\--ignore-dynu >> + If given, all dynamic utilisation information will be ignored by >> + assuming it to be 0. This option will take precedence over any data >> + passed by the ``-U`` option (available with hbal) or by the MonDs with >> + the ``--mond`` and the ``--mond-data`` option. >> + >> -m *cluster* >> Backend specification: collect data directly from the *cluster* given >> as an argument via RAPI. If the argument doesn't contain a colon (:), >> -- >> 1.7.10.4 >> >> > Rest LGTM, thanks. > > Michele > > > Thanks, > Spyros > > > -- > 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 > > > Thanks, Michele -- 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
