The code in this repository aims at reproducing the experiments related to the following paper:
Higher SLA Satisfaction in Datacenters. Huynh Tu Dang, Fabien Hermenier. Proceedings of "Workshop on Hot Topics in Dependable Systems 2013"
For any questions about the paper, the experiments, or basically anything related to BtrPlace. see the BtrPlace website.
Building from sources
- JDK 7+
- maven 3+
The source of the released versions are directly available in the
You can also download them using github features.
Once downloaded, move to the source directory then execute the following command
to make the distribution:
$ mvn clean assembly:assembly -DskipTests
The resulting standalone distribution will be in
Reproducing the results
To run the experiments, you must have a running Java 7 environment.
#Download and extract the [workload](http://btrp.inria.fr/hotdep-2013-workload.tar.bz2) #from [BtrPlace Website](http://btrp.inria.fr) #Run the evaluator. Here using dist_evaluators #to process the workload 'hotdep-2013-workload' on the 8 nodes # listed in the 'nodes' file $ ./bin/dist_evaluators.sh nodes hotdep-2013-workload results #Follow the progress $ wc -l results/*/results.txt 100 results/bs_continuous/results.txt 100 results/bs_discrete/results.txt 100 results/he_continuous/results.txt 100 results/he_discrete/results.txt 100 results/sf_continuous/results.txt 100 results/sf_discrete/results.txt 100 results/ve_continuous/results.txt 100 results/ve_discrete/results.txt 800 total #Yeah! 100 results per file. The evaluation is finished #Produce the datafile $ ./bin/mergeResults.sh results/*/results.txt > results/allResults.txt #Analyse the data using R $ ./bin/discrete_reports.R results/allResults.txt results/distribution.pdf $ ./bin/overhead.R results/allResults.txt results/
evaluator*.sh scripts are available in the
bin directory. They
allow to process the workload at a finer grain.
Generating a custom workload
This can be done using the
bin/instanceMaker.sh and the
$ ./bin/instanceMaker.sh Missing required option: o usage: InstanceMaker -a <arg> number of applications -o <arg> output JSON file -p <arg> number of nodes per rack -r <arg> number of racks
##Datafile format ## The file is a CSV file with tabulations used as a separator.
- Instance file name
- Scenario type: 0=ve, 1=he, 2=sf, 3=bs
- Discrete (0) or Continuous (1) restriction
- Solving status: -1= Unable to state about the feasibility, 0= No solution (proved), 1= At least 1 solution
- Number of violated spread constraints
- Number of violated among constraints
- Number of violated splitAmong constraints
- Number of violated singleResourceCapacity constraints
- Number of violated MaxOnline constraints
- Number of affected SLAs
- Current CPU load
- Current Memory load
- CPU load once the plan is applied
- Memory load once the plan is applied
- core-RP building duration (ms.)
- RP-specialisation duration (ms.)
- solving duration (ms.)
- Estimated plan duration (sec.)
- Number of actions
- Number of BootVM actions
- Number of MigrateVM actions
- Number of Allocate actions
- Number of BootNode actions
- Number of ShutdownNode actions