From b87b78779f374bc24abdea76d15ef5bcfb364630 Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Mon, 12 Nov 2018 15:19:51 +0100 Subject: [PATCH 1/6] Add graph builder --- tests/docker-vm/vnf-vm/graphs.r | 49 ++++++++++++++++++++++++++++++++ tests/docker-vm/vnf-vm/runner.sh | 1 + tests/docker-vm/vnf-vm/zip.py | 28 ++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100755 tests/docker-vm/vnf-vm/graphs.r create mode 100755 tests/docker-vm/vnf-vm/zip.py diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r new file mode 100755 index 0000000..d7856f5 --- /dev/null +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -0,0 +1,49 @@ +#!/usr/bin/env Rscript + +print_boxplot = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + boxplot(range01(data[,1]), range01(data[,2])) + dev.off() +} + +print_pie = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + pie( + c(sum(data[,1]), sum(data[,2])), + labels = c("Virtual Box", "Docker"), + main = "Docker vs VM start up times") + dev.off() +} + +print_barplot = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + barplot( + c(sum(data[,1]), sum(data[,2])), # pass first and second data column + main="Docker vs Virtual Machine startup times", + col=c("darkgreen", "darkred"), + ylim=c(0, round((max(sum(data[,1]), sum(data[,2])) / 500))+1)*500, + names.arg=c("Virtual Box", "Docker"), # pass first and second data name + cex.lab=2, + cex.axis=2, + cex.names=2, + cex.main=2) + dev.off() +} + +range01 = function(x) { + (x-min(x))/(max(x)-min(x)) +} + +append = function(x, y) { + paste(x, y, sep='') +} + +args = commandArgs(trailingOnly=TRUE) +if (length(args) < 2) { + stop("At least three arguments must be supplied (path to the data, path where to save the graphs and name prefix).n", call.=FALSE) +} else { + data = read.csv(args[1], sep=",") + print_pie(data, args[2], append(args[3], 'Pie')) + print_barplot(data, args[2], append(args[3], 'Barplot')) + print_boxplot(data, args[2], append(args[3], 'Boxplot')) +} diff --git a/tests/docker-vm/vnf-vm/runner.sh b/tests/docker-vm/vnf-vm/runner.sh index 1c7a4e7..76d59ed 100755 --- a/tests/docker-vm/vnf-vm/runner.sh +++ b/tests/docker-vm/vnf-vm/runner.sh @@ -61,6 +61,7 @@ function main() { check_docker $2 $4 "$1.docker" $5 msg info "Tests finished. Output file: $1. Number of tests performed: $2. Bye!" + ./zip.py "$1" } main $@ diff --git a/tests/docker-vm/vnf-vm/zip.py b/tests/docker-vm/vnf-vm/zip.py new file mode 100755 index 0000000..b8a07ac --- /dev/null +++ b/tests/docker-vm/vnf-vm/zip.py @@ -0,0 +1,28 @@ +#!/bin/python3 + +import sys +import csv + +def get_lines(filename): + with open(filename) as f: + content = f.readlines() + return [x.strip() for x in content] + + +def zip_res(filenames): + docker = filenames + ".docker" + vm = filenames + ".vm" + docker_lines = get_lines(docker) + vm_lines = get_lines(vm) + + zipped_lines = zip(vm_lines, docker_lines) + + with open('result.csv', mode='w') as result_file: + result_writer = csv.writer(result_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) + + result_writer.writerow(['VirtualBox', 'Docker']) + result_writer.writerows(zipped_lines) + + +if __name__ == '__main__': + zip_res(sys.argv[1]) From 71ee5479038a2e66b9d9666e4a22b77d07948db1 Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Mon, 12 Nov 2018 15:22:58 +0100 Subject: [PATCH 2/6] Clean up --- tests/docker-vm/vnf-vm/graphs.r | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r index d7856f5..18740c7 100755 --- a/tests/docker-vm/vnf-vm/graphs.r +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -10,6 +10,7 @@ print_pie = function(data, path, name) { png(filename=sprintf("%s/%sGraph.png", path, name)) pie( c(sum(data[,1]), sum(data[,2])), + col=c("darkgreen", "darkred"), labels = c("Virtual Box", "Docker"), main = "Docker vs VM start up times") dev.off() @@ -18,11 +19,11 @@ print_pie = function(data, path, name) { print_barplot = function(data, path, name) { png(filename=sprintf("%s/%sGraph.png", path, name)) barplot( - c(sum(data[,1]), sum(data[,2])), # pass first and second data column + c(sum(data[,1]), sum(data[,2])), main="Docker vs Virtual Machine startup times", col=c("darkgreen", "darkred"), ylim=c(0, round((max(sum(data[,1]), sum(data[,2])) / 500))+1)*500, - names.arg=c("Virtual Box", "Docker"), # pass first and second data name + names.arg=c("Virtual Box", "Docker"), cex.lab=2, cex.axis=2, cex.names=2, From f328fe5aaeaf887d8b460a3adf9affc3ddffd2ce Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Wed, 14 Nov 2018 10:50:10 +0100 Subject: [PATCH 3/6] Add boxplot names --- tests/docker-vm/vnf-vm/graphs.r | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r index 18740c7..7592945 100755 --- a/tests/docker-vm/vnf-vm/graphs.r +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -2,7 +2,8 @@ print_boxplot = function(data, path, name) { png(filename=sprintf("%s/%sGraph.png", path, name)) - boxplot(range01(data[,1]), range01(data[,2])) + names = structure(list(range01(data[,1]), range01(data[,2])), .Names = c("Virtual Box", "Docker"), class = "data.frame") + boxplot(names) dev.off() } From f5a05951042f1c895fa88f288a535e465dc1cc75 Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Wed, 14 Nov 2018 10:58:14 +0100 Subject: [PATCH 4/6] Add files to ignore --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index eea0580..bd58b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -226,3 +226,8 @@ dmypy.json # Pyre type checker .pyre/ +**/*.txt +**/*.png +**/*.csv +**/*.vm +**/*.docker From 19be1ead92624d42e94506840aeca4bbeebaf96f Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Wed, 14 Nov 2018 17:43:36 +0100 Subject: [PATCH 5/6] Remove title --- tests/docker-vm/vnf-vm/graphs.r | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r index 7592945..0f393f1 100755 --- a/tests/docker-vm/vnf-vm/graphs.r +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -21,7 +21,7 @@ print_barplot = function(data, path, name) { png(filename=sprintf("%s/%sGraph.png", path, name)) barplot( c(sum(data[,1]), sum(data[,2])), - main="Docker vs Virtual Machine startup times", +# main="Docker vs Virtual Machine startup times", col=c("darkgreen", "darkred"), ylim=c(0, round((max(sum(data[,1]), sum(data[,2])) / 500))+1)*500, names.arg=c("Virtual Box", "Docker"), From 2340f05d4b28511fafdf148ea8d33f44d4e9afbd Mon Sep 17 00:00:00 2001 From: Davide Polonio Date: Thu, 15 Nov 2018 17:18:13 +0100 Subject: [PATCH 6/6] Fix script graphs generator --- tests/docker-vm/vnf-vm/graphs.r | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r index 0f393f1..ac07487 100755 --- a/tests/docker-vm/vnf-vm/graphs.r +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -20,15 +20,16 @@ print_pie = function(data, path, name) { print_barplot = function(data, path, name) { png(filename=sprintf("%s/%sGraph.png", path, name)) barplot( - c(sum(data[,1]), sum(data[,2])), + c(log(sum(data[,1])), log(sum(data[,2]))), # main="Docker vs Virtual Machine startup times", col=c("darkgreen", "darkred"), - ylim=c(0, round((max(sum(data[,1]), sum(data[,2])) / 500))+1)*500, + ylim=c(0, round(log((max(sum(data[,1]), sum(data[,2])))) / 5))*5, names.arg=c("Virtual Box", "Docker"), cex.lab=2, cex.axis=2, cex.names=2, cex.main=2) + mtext(side=2, line=3, text="log(seconds)") dev.off() }