Cloudburst is a load driver that is designed to simulate load in IaaS cloud environments. It uses and applies workload distributions to simulate users in parallel. Different distributions can be configured to aim at different target servers. To provide and compose a realistic behavior, different operations can be specified that are used by simulated users for the actual load generation.
-
System configuration settings are passed to the Benchmark that initializes a new Scenario. A Scenario coordinates the execution of a load test. It creates a TargetSchedule and a TargetManager instances that in turn manages multiple Target instances.
-
TargetSchedule parses the load test configuration and creates multiple instances of TargetConfiguration, one for each load target that will be used during the test. For each target multiple configuration settings like ramp-up, ramp-down, load duration, and the load profile are stored.
-
A TargetManager manages the lifecycle of all Target instances. It waits for the TargetSchedule until a new Target should be created. Timings depend on a schedule configuration as shown in Figure 'Time Schedule'. New instances of Target are created by the TargetManager leveraging the TargetFactory. TargetManager terminates as soon as all Targets arrived their end of life and are terminated.
-
Each Target instances is bound to one target VM. It allocates and deallocates the VM from the IaaS layer and initializes it. Afterwards, it generates load on the applications running within the VM. Load is generated by an instance of LoadManager that schedules the allocation and deallocation of Agent instances. The number of Agents is described by the load profile as shown in Figure 'Workload Profile'.
-
Each Agent generates load against the applications inside the target VM. The next query to run is defined by the Generator which is shared amongst all Agents of the same Target. Each time the Generator is called it returns a new Operation. An Operation comprises a run-method that actually triggers queries against an application. After an operation has been executed, an Agent waits for some time until it requests another Operation. This loop can be terminated by the Target in order to stop the Agent.
-
Each Scoreboard instances receives and aggregates operational statistics for one Target. Such statistics comprise waiting times and number of successful and failed operations. At the end of an benchmark all data is dumped for later analysis.