ETC3

CS290F Fall 2006 - UCSB Computer Science - Thorsten von Eicken

Jump to: navigation, search

run.sh script

#!/bin/bash

httperf_script=$1
directory=$2

maxsesh=100

mkdir ${directory}

touch ./${directory}/COLLECT.txt

for x in  1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
do

echo "script :: ${httperf_script}       rate :: ${x}    directory :: ${directory}"

httperf --hog --server=domu-12-31-34-00-02-5a.usma2.compute.amazonaws.com --wsesslog=${maxsesh},0,${httperf_script} --session-cookie --print-reply --rate ${x} > ./${directory}/session${maxsesh}_rate${x}.txt

echo "HTTPERF RATE ${x} :::" >> ./${directory}/COLLECT.txt

tail -28 ./${directory}/session${maxsesh}_rate${x}.txt >> ./${directory}/COLLECT.txt

done

Usage

./run.sh <http_test_script> <new_directory>

This will create a new directory <new_directory> in the current folder than generate COLLECT.txt that contains the last 28 lines from each run.

Then, you need to run "parse.pl" on COLLECT.txt, which parses and creates a summary table.

parse.pl

#!/usr/bin/perl

$filename = $ARGV[0];

print "Input :: $filename\n";

open(IN, "<$filename");

my $line;

my $rate = "nil";

my $connection_rate = "nil";

my $request_rate = "nil";

my $reply_rate = "nil";

my $reply_time = "nil";

my $session_rate =" nil";

print "HTTPERF\tConnection rate [conn/s]\tRequest rate [req/s]\tReplay rate[replies/s]\tReplay time[ms]\tSession rate[sess/s]\n";


while($line = <IN>){

        chomp $line;

#       print "$line\n";

        if ($line =~ m/^HTTPERF RATE ([0-9\.]+)/){
                $rate = $1;
        }elsif ( $line =~m/^Connection rate: ([0-9\.]+) / ){
                $connection_rate = $1;
        }elsif ( $line =~ m/^Request rate: ([0-9\.]+) / ){
                $request_rate = $1;
        }elsif ( $line =~ m/^Reply rate \[replies\/s\]: min [0-9\.]+ avg ([0-9\.]+) / ){
                $reply_rate = $1;
        }elsif ( $line =~ m/Reply time \[ms\]: response ([0-9\.]+) .*/){
                $reply_time = $1;
        }elsif ( $line =~ m/^Session rate \[sess\/s\]: min [0-9\.]+ avg ([0-9\.]+) / ){
                $session_rate = $1;

                print "$rate\t$connection_rate\t$request_rate\t$reply_rate\t$reply_time\t$session_rate\n";
        };

};

;

usage

>perl parse.pl COLLECT.txt
Personal tools