From: P2P-Next User Date: Wed, 5 Jan 2011 15:45:27 +0000 (+0200) Subject: Utils: add data-processing folder X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=c73cb7c26c6ad670a587ca464ace248c3d35f279;p=p2p-testing-infrastructure.git Utils: add data-processing folder parse download time, download speed and get standard deviation from .data files (output from experiments) --- diff --git a/Utils/data-processing/down_time_mean_sd.R b/Utils/data-processing/down_time_mean_sd.R new file mode 100644 index 0000000..8372829 --- /dev/null +++ b/Utils/data-processing/down_time_mean_sd.R @@ -0,0 +1,22 @@ +# +# get mean download time, standard deviation and mean download speed +# + +args <- commandArgs(trailingOnly = TRUE) + +input_file <- args[2] +file_size <- args[3] + +data <- read.table(input_file, sep=" ") + +down_time <- data[2] + +m <- mean(down_time) +s <- sd(down_time) +p <- s / m * 100 +m_down_speed <- as.numeric(file_size)*1024 / m + +m +s +p +m_down_speed diff --git a/Utils/data-processing/get_down_time b/Utils/data-processing/get_down_time new file mode 100755 index 0000000..d81833d --- /dev/null +++ b/Utils/data-processing/get_down_time @@ -0,0 +1,25 @@ +#!/bin/bash + +# +# Print download time for transfer (in seconds) +# Receive .data file as argument +# +# Sample usage: +# ./get_down_time data-file +# +# 2011, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro +# + +if test $# -ne 1; then + echo "Usage: $0 data-file" 1>&2 + echo -e "\tdata-file\t- first column is time, second download percentage" + exit 1 +fi + +data_file="$1" + +sed -n '/^[0-9\.]\+[ \t]\+100/{ + s/\(^[0-9\.]\+\)[ \t]\+.*$/\1/ + p + q +}' "$data_file" diff --git a/Utils/data-processing/get_scenario_down_time b/Utils/data-processing/get_scenario_down_time new file mode 100755 index 0000000..96844c4 --- /dev/null +++ b/Utils/data-processing/get_scenario_down_time @@ -0,0 +1,52 @@ +#!/bin/bash + +# +# Get download time for a given scenario. Recursivelly pass through specific +# subfolders (scenario-folder parameter) in campaign folders (base-folder +# parameter). +# +# Expected hierarchy: +# +# base-folder/ +# +--campaign-folder1/ +# +--scenario-folder1 +# +--data-file-peer1 +# +--data-file-peer2 +# ... +# +--data-file-peerN +# +--scenario-folder2 +# ... +# +--scenario-folderN +# +--campaign-folder2/ +# ... +# +--campaign-folderN/ +# +# Call get_down_time script for each data file. +# +# Sample usage: +# ./get_scenario_down_time base-folder +# + +if test $# -ne 2; then + echo "Usage: $0 base-folder scenario-folder" 1>&2 + exit 1 +fi + +base_folder="$1" +scenario_folder="$2" + +( +IFS=$'\n' +for d in $(find "$base_folder" -mindepth 2 -maxdepth 2 -type d -name "$scenario_folder"); do + for f in $(find "$d" -mindepth 1 -maxdepth 1 -type f -name "p2p-next-*.log.data"); do + fname=$(basename "$f" .log.data) + _tmp="${fname#*-}" + id="${_tmp#*-}" + dtime=$(./get_down_time "$f") + if test "$dtime" -eq 0; then + continue + fi + echo "$id $dtime" + done +done +)