Experimental
Feature is permanent, but interfaces and usage will change
Description
It is desirable to vary
the scale of the workload during the run. This is often used for quick
scaling tests to find the limitations of the system under test. It is
also used for testing elastic, self configuring components how well it
adapts to load variation or component-level failure. The final result
of such tests are usually less important than the intermittent behavior
at and after the time of the scale change.
Faban
allows you to vary the scale of the workload by providing load
variation files to a run at submission time. All the needed driver
threads for the maximum load are being created at the beginning of the
run. Unneeded threads will remain idle until they are needed, and will
return to idle/sleeping state between or after the times they are
needed. This feature coupled with the runtime reporting allows us to
monitor the response times and its stability as the load varies.
Configuration
Prepare a load variation file. The file contains load level
records, one per line. Each record is a comma-separated pair of
integers in the form
<runtime in secs>,<thread count>
such as in the following example:
10,500
20,700
10,600
In the example above, a load of 500 threads are applied for 10 seconds,
then 700 threads start applying load for 20 seconds. Afterwards, 600
threads apply the last set of load for 10 seconds.
In your run.xml, add the load variation elements
fa:variableLoad and fa:variableLoadFile to the runControl element as
follows:
Make sure the scale of the run results in threads being
created matching the largest thread count in the load variation file.
Also ensure that the total time of the load variation matches the
steady state time of the run.
Now, start the run via the submission form or command line
as usual, then observe the runtime statistics and the results.
Restrictions/Limitations
The load variation file works on a per agent basis. The
thread
count is the thread in each agent. So if there n agents, the effect of
the load variation will be n times the number of threads that get added
or removed.
The load variation file does not get distributed to
all the driver systems. They have to be manually placed in the given
path on each driver system.
The sum of time in the load variation file and the steady
state must match.
The
load variation is still configured on a thread basis and not a scale
basis. The maximum thread count in the load variation file must match
the thread count on each agent as calculated by the scale.