- The core simulation code is located in the src/ directory
- A set of trace files to use with the simulator are located in the traces/ directory
- Trace files are csv files, with each line containing the pair [time, value]
- Time is simulation time in ms
- Value is a normalized load value in the range [0, 1], where 0 represents 0 load, and 1 represents the largest load in the trace
- The config/simulation.config file contains a set of configuration parameters to configure host and VM state transition delays (i.e. for powering on and off, starting a VM), migration penalty and overhead values, and simulation output. You can also choose to use an approximate MVA calculation for VM queuing model calculation, to improve simulation performance (recommended).
- The examples/ directory contains a set of basic examples of how to use the simulator
- SimpleExample is a good starting point to using the simulator. You can run this file directly, and read the code for a basic introduction
- A particular simulation configuration and setup is defined by extending SimulationTask, and overriding its setup() method. Within this method, configure your simulation (see examples in the example/ directory)
- Run your simulation by creating a new instance of your SimulationTask, and calling its run() method.
- You must call Simulation.initializeLogging() prior to creating and running your SimulationTask
- You can get the results of your simulation from SimulationTask.getMetrics()