This repository hosts the replication package of the empirical study titled: "An empirical assessment and improvement of the Digital Environmental Footprint formulas for server-side software".
The experiment aims to measure the energy consumption of a group of servers under different loads. The experiment is orchestrated with ExperimentRunner. The servers are subjected to different CPU loads using stress-ng, a well-known Linux stressor, and TrainTicketSystem, a microservice-based web-service. The energy consumption data is obtained via a Rittal monitoring system, while the CPU data is obtained via 'lm-sensors' and 'mpstat'. The obtained data is then preprocessed using Python and analysed using Excel.
- Developing System (DS): Linux-based computer where the experiment gets started and is conducted
- Monitoring System (MS): Linux-based server in charge of monitoring the energy consumption of the SUT.
- System Under Test (SUT): Linux-based servers in which the experiment is performed, this is, they are stressed through the use of the TTS or stress-ng at different CPU loads for various runs.
- DS
- Experiment Runner (installation instructions in the repo)
- k6 suite (installation)
- Rittal Power monitoring repo (installation)
- MS
- Rittal Power monitoring repo (installation)
- SUT
- Train Ticket System (installation guide)
- Stress-ng (installation instructions in the repo)
The experiment workflow consists of the following steps:
- Experiment Runner is used to orchestrate, configure, and run the experiment.
- The energy consumption data is collected via Rittal.
- The CPU data is collected via 'lm-sensors' and 'mpstat', memory data via 'free'.
- The collected data is preprocessed using Python.
- The cleaned data is analysed using Excel
These are the followed steps to run the experiment:
- Clone the repository.
- Install the necessary dependencies in DS (from Requirements).
- Install the necessary dependencies in the SUTs.
- Install the necessary dependencies in the MS.
- Perform the necessary modifications in the RunnerConfig.py files.
- Execute the experiment with
python experiment-runner/ <SelectedRunnerConfig.py>
The repository contains the following files and directories:
experiment-runner/
: experiment-runner configurationGL2/
: RunnerConfig files and results for experiments on SUT1 (GL2)GL5/
: RunnerConfig files and results for experiments on SUT2 (GL5)GL6/
: RunnerConfig files and results for experiments on SUT3 (GL6)experiment-runner/
: experiment-runner's internal source codeother_RunnerConfigs_ander/
: old RunnerConfig files
scripts/
: contains all the necessary scripts for the experiment.analysis/
: scripts used for the data analysisarchive/
: old scripts, not in use anymoreexperiment-runner/
: scripts used for running the experimentpreprocessing/
: scripts that clean and parse the data to the required formatutils/
: other scripts for auxiliary tasks
README.md
: this file.
Feel free to contact us for further requests and to adapt this README file to suit your project's specific needs.