From: Martin Mares Date: Sat, 21 Jun 2003 08:55:46 +0000 (+0000) Subject: More tools. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=f7f14313921a9a60c385f1a0b44c38a36551a254;p=netgrind.git More tools. --- diff --git a/post/graph-http-spect-sizes b/post/graph-http-spect-sizes new file mode 100755 index 0000000..e6cbd47 --- /dev/null +++ b/post/graph-http-spect-sizes @@ -0,0 +1,44 @@ +#!/usr/bin/perl +# Draw spectrum of HTTP transaction lengths from netgrind output +# (c) 2003 Martin Mares , GPL'ed + +use strict; +use warnings; +use POSIX; + +my @k = ( 0, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 1000000000 ); +my @v = map { 0 } @k; + +while (<>) { + chomp; + /^#/ && next; + my ($t1, $t2, $src, $dst, $ffor, $result, $cache, $queue, $length, $totaltime, $waittime, $ctype, $method, $url) = split /\s+/; + if ($result =~ /^\d+$/) { + my $i = 0; + while ($length >= $k[$i+1]) { + $i++; + } + $v[$i]++; + } +} + +my $datafile = "gp.tmp"; +open D, ">$datafile" or die; +for(my $i=0; $i<$#k; $i++) { + print D $k[$i], "\t", $v[$i], "\n"; +} +close D; + +open GP, "|gnuplot" or die; +print GP <, GPL'ed + +use strict; +use warnings; +use POSIX; + +my @k = ( 0, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64, 1000000000 ); +my @v1 = map { 0 } @k; +my @v2 = map { 0 } @k; + +while (<>) { + chomp; + /^#/ && next; + my ($t1, $t2, $src, $dst, $ffor, $result, $cache, $queue, $length, $totaltime, $waittime, $ctype, $method, $url) = split /\s+/; + if ($result =~ /^\d+$/) { + my $i = 0; + while ($totaltime >= $k[$i+1]) { + $i++; + } + $v1[$i]++; + $i = 0; + while ($waittime >= $k[$i+1]) { + $i++; + } + $v2[$i]++; + } +} + +my $datafile = "gp.tmp"; +open D, ">$datafile" or die; +for(my $i=0; $i<$#k; $i++) { + print D $k[$i], "\t", $v1[$i], "\t", $v2[$i], "\n"; +} +close D; + +open GP, "|gnuplot" or die; +print GP <, GPL'ed + +use strict; +use warnings; +use POSIX; + +1 == @ARGV or die "Usage: http-extract "; +eval ' +while () { + chomp; + /^#/ && next; + my ($t1, $t2, $src, $dst, $ffor, $result, $cache, $queue, $length, $totaltime, $waittime, $ctype, $method, $url) = split /\s+/; + print ' . $ARGV[0] . ', "\n"; +} +'; +die "$ARGV[0]: $@" if $@;