Welcome to ElasticSim Introduction: ElasticSim is a simulator environment for testing autoscaling algorithms.
Requirements: This software is tested on Mac OSX El Capitan 10.11.5.
- R version 3.2.3
- java version "1.8.0_25"
- Bash
Working with Simulator: R scripts are places in directory r_scripts. ElasticSim core components are AppElastic.java and CreateDataset.java. To provide custom algorithm, please replace the method runAppElastic or runAppElasticWithRi. To get the billing information and logs, the custom algorithm should add VmInstance objects to runningInstance array.
Configuration Files: There are two configuration files:
- For AppElastic algorithm. Location: config/appelastic.conf
- For forecasting algorithm. Location: r_script/config.r
Both should contain same workload information.
Log Files: sim_log : Helps in debugging. Provides event log of every minute. billing_hours: Provides billing of all the VM's used in the simulation. simlog_ri: This log has an extra value to denote how many reserved instances are used. cost_log: This is generated by the heuristics, and used for plotting options graph.
Options:
- Start prediction service to generate forecasting
- Analyze historical workload to decide on reserved instances
- Start running AppElastic scaling algorithm on workload with reserved instances
- Run AppElastic scaling algorithm for testing
NOTE: TO TEST NEW ALGORITHMS, PLEASE REPLACE WITHOUT FORECASTING YOU SHOULD CONFIGURE FORECAST_SCALEUP_WORKLOAD, ACTUAL_WORKLOAD, FORECAST_SCALEDOWN_WORKLOAD TO SAME FILE. OR ELSE YOU WONT BE ALBE TO FIND PROBLEMS.
TO TEST IF APPELASTIC ALGORITHAM IN THIS CODE WORKING OR NOT. PLEASE USE IT WITHOUT FORECASTING WORKLOADS. YOU SHOULD CONFIGURE FORECAST_SCALEUP_WORKLOAD, ACTUAL_WORKLOAD, FORECAST_SCALEDOWN_WORKLOAD TO SAME FILE. OR ELSE YOU WONT BE ALBE TO FIND THE RESULTS.