Skip to content

johanneskross/cloudburst

Repository files navigation

Cloudburst

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.

Architecture

Cloudburst Architecture

  • 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.

Time Schedule Workload Proflile

About

load driver for simulating workload in IaaS clouds

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages