An open API service indexing awesome lists of open source software.

https://github.com/eddieantonio/collect-data

Replication repository for "How does Docker affect energy consumption? Evaluating workloads in and out of Docker containers"
https://github.com/eddieantonio/collect-data

docker energy jss watts-up-pro

Last synced: 7 months ago
JSON representation

Replication repository for "How does Docker affect energy consumption? Evaluating workloads in and out of Docker containers"

Awesome Lists containing this project

README

          

Measurements
============

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1215174.svg)](https://doi.org/10.5281/zenodo.1215174)
[![Preprint](https://img.shields.io/badge/preprint-14%20pages-green.svg)][Paper URI]

Utilities for obtaining energy measurements from a Watts Up? Pro. See
`analysis/` for R scripts used to calculate statistics and generate
figures.

[Read our preprint (PDF)][Paper URI]!

If you use these scripts, please [cite our paper](#citation)!

[Paper URI]: https://arxiv.org/pdf/1705.01176.pdf

Setup
-----

Requires Python 3.5+ and pip (`virtualenv` recommended):

$ pip install -r requirements.txt

Usage
-----

### Defining an experiment

Add the experiment to `experiments.py`:

```python
@Experiment
def fullstack():
"This experiment runs Apache Benchmark on the Pis..."
...
```

### Running an experiments

Use `./run-experiment.py`:

```sh
$ python run-experiment.py fullstack native
```

### Getting energy data

Use the module as a script to estimate energy from all of the tests and
copy it into a table.

If your data is stored in an SQLite database file called `energy.sqlite`:

```sh
$ python -m measurments --table-name=energy energy.sqlite
```

Then you can access the `energy` table in SQLite (or use your favourite driver).

```sh
$ sqlite3 -csv -header energy.sqlite 'SELECT * FROM energy'
id,configuration,experiment,energy,started,ended,elapsed_time
2,native,idle,2640.2,1467665307981.03,1467665366137.17,58156.1420898438
3,native,idle,2685.1,1467665367137.38,1467665426296.44,59159.0610351562
4,native,idle,2684.8,1467665427299.03,1467665486454.59,59155.5590820313
5,native,idle,2729.8,1467665487458.47,1467665547626.23,60167.7639160156
6,native,idle,2684.6,1467665548628.7,1467665607794.03,59165.33203125
7,native,idle,2640.1,1467665609798.64,1467665667980.85,58182.216796875
8,native,idle,2684.4,1467665668985.92,1467665728154.63,59168.7067871094
9,native,idle,2684.8,1467665729156.64,1467665788295.35,59138.71484375
10,native,idle,2685.5,1467665789300.51,1467665848479.9,59179.3918457031
...
```

Test
----

First, ensure `measurements` is importable:

```sh
pip install -e .
```

Then, simply use `setup.py`:

```sh
python setup.py test
```

Citation
========

If you use these scripts in your work, please cite us as follows:

```bibtext
@article{santos2017docker,
author = {Santos, Eddie Antonio and
{McLean}, Carson and
Solinas, Christopher and
Hindle, Abram},
title = {How does {Docker} affect energy consumption? Evaluating workloads in
and out of {Docker} containers},
journal = {{CoRR}},
volume = {abs/1705.01176},
year = {2017},
url = {http://arxiv.org/abs/1705.01176},
archivePrefix = {arXiv},
eprint = {1705.01176},
}
```

License
=======

Copyright (C) 2016, 2017, 2018 Eddie Antonio Santos, Carson McLean, Christopher Solinas.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .