Neil Williams <codeh...@debian.org> writes:

> On Wed, 27 Nov 2013 13:56:42 +1300
> Michael Hudson-Doyle <michael.hud...@linaro.org> wrote:
>
>> I've been looking at moving my ghetto multinode stuff over to proper
>> LAVA multinode on and off for a while now, and have something that I'm
>> still not sure how best to handle: result aggregation.
>
> MultiNode result bundle aggregation combines completed results after all
> test cases have run (specifically, during the submit_results action), at
> which point no further actions will be executed. Aggregation itself
> happens off device, not even on the dispatcher, it happens on the
> server. This allows each node to send their result bundle as normal
> (via the dispatcher over XMLRPC) and it is only the subid-zero job which
> needs to hang around waiting for other nodes to submit their individual
> results.

Right.  And the "aggregation" that happens at this level is really just
that the test runs produced by each node are put in a list?  There's no
possibility for me to interfere at this stage AIUI (which I think is
probably fine and sensible :-p)

> My question is: exactly what analysis are you needing to do *on the
> device under test* 

It doesn't have to be on the/a device under test really... but the
prototypical example would be the one I gave in my mail, summing the
req/s reporting by each loadgen node to arrive at a total req/s for the
system as a whole.

> and can that be done via filters and image reports on the server?

I don't know.  Can filters and image reports sum the measurements across
a bunch of separate test cases?

> If the analysis involves executing binaries compiled on the device,
> then that would be a reason to copy the binaries between nodes using
> TCP/IP (or even cache the binaries somewhere and run a second test to
> do the analysis) but otherwise, it's likely that the server will provide
> more competent analysis than the device under test. It's a question of
> getting the output into a suitable format.
>
> Once a MultiNode job is complete, there is a single result bundle which
> can contain all of the test result data from all of the nodes,
> including measurements. There is scope for a custom script to optimise
> the parser to make the data in the result bundle easier to analyse in
> an image report.

Yeah, I think this is what I was sort of asking for.

> This is the way that MultiNode is designed to work - each test
> definition massages the test result output into whatever structure is
> most amenable to being compared and graphed using Image Reports on the
> server, not on a device under test.
>
> Using the server also means that further data mining is easy by
> extracting and processing the aggregated result bundle at any time
> including many months after the original test completed or comparing
> tests several weeks apart.

Well sure, I think it's a bad idea to throw the information that you are
aggregating away.  But it's nice to have the aggregate req/s in the
measurement field so you can get a quick idea of performance changes.

>> The motivating case here is having load generation distributed across
>> various machines: to compute the req/s the server is actually able to
>> manage I want to add up the number of requests each load generator
>> made.
>> 
>> I can sort of see how to do this myself, basically something like
>> this:
>> 
>>  1. store the data on each node
>>  2. arbitrarily pick one node to be the one that does the aggregation
>
> LAVA does this arbitrarily as well - the bundles are aggregated by the
> job with subid zero, so 1234.0 aggregates for 1234.1 and 1234.2 etc.

Is there a way for the node to tell if it is running the job with subid
0?

>>  3. do tar | nc style things to get the data onto that node
>>  4. analyze it there and store the results using lava-test-case
>
> Results inside a test case mean that if the analysis needs to be
> improved, old data cannot be re-processed.

Not necessarily -- for my tests I also save the entire httperf output as
attachments and have scripts that analyze these to produce fancy graphs
as well as putting the aggregate req/s in the measurement field.  I
guess what this means is that the aggregation is only a convenience
really -- but probably a fairly important one.

>> but I was wondering if the LAVA team have any advice here.  In
>> particular, steps 2. and 3. seem like something it would be reasonable
>> for LAVA to provide helpers to do.
>
> The LAVA support for this would be to use filters and Image Reports on
> the server, not during the test when repeating the analysis means
> repeating the entire test (at which point the data changes under your
> feet).

Cheers,
mwh

_______________________________________________
linaro-validation mailing list
linaro-validation@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-validation

Reply via email to