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.
See http://btrp.inria.fr/repos/releases/btrplace/hotdep-2013/
Requirements:
- JDK 7+
- maven 3+
The source of the released versions are directly available in the Tag
section.
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 target/hotdep-2013-1.0-dist.tar.gz
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/
Additional evaluator*.sh
scripts are available in the bin
directory. They
allow to process the workload at a finer grain.
The raw results used in the paper is also available online, from the BtrPlace Website.
This can be done using the bin/instanceMaker.sh
and the bin/instancesMaker.sh
scripts:
$ ./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