📄 wscollect.pl
字号:
#!/pkg/gnu/bin//perl##wscollect.pl,v 1.2 2000/06/04 22:00:03 brunsch Exp## /project/cvs-repository/ACE_wrappers-repository/apps/JAWS/clients/WebSTONE/bin/wscollect.pl,v 1.2 2000/06/04 22:00:03 brunsch Exp# updated version of the old wscollect script which goes through# webstone run directories and summarizes the output in tabular# format.# syc 4/25/96#require "find.pl";## the list @runs contains the timestamps for the runs which are found# during the traversal of the runs directory. This list is used for# indices into the associative arrays for storing run information.# # $numclients{ $time } - number of clients for the run# $connrate{ $time } - connection rate average# $littlesload{ $time } - little's load factor# $latency{ $time } - latency average# $error{ $time } - error rate# $throughput{ $time } - throughputlocal( @runs, %numclients, %connrate, %littlesload, %latency, %error, %throughput);# Got rid of the trick hack of the title names, someone can put it# back in later@title = ( "Timestamp", "Total number of clients", "Connection rate average (conn/s)", "Little's Load Factor", "Average Latency (seconds)", "Error Level (%)", "Throughput avg. for all connections (MBits/s)");push( @ARGV, ".") if ( !@ARGV );for (@ARGV) { &find( $_ );}&PrintOutput;1;sub wanted { local( $filename ) = $_; return unless ( $filename =~ /run/ ); local( $instats) = 0; local( $runtime, $tag, $data, $cruft, @cruft ); open( FILE, $filename ) || return; # bail if failed to open $runtime = `pwd`; @cruft = split(/\//,$runtime); $runtime = pop( @cruft); chop( $runtime); push( @runs, $runtime); while ( $line = <FILE>) { if (! $instats) { $instats = 1 if ( $line =~ /^WEBSTONE 2\.0 results/ ); next; } chop( $line ); ( $tag, $data ) = split( /:?\s{2,}|\t/, $line); # perl hack to emulate case/switch statement $tag =~ /number of clients/ && ($numclients{ $runtime } = $data, next); $tag =~ /error rate/ && (( $error{ $runtime }) = $data =~ /([\d\.]+)/, next); $tag =~ /connection rate/ && (( $connrate{ $runtime }) = $data =~ /([\d\.]+)/, next); $tag =~ /Server thruput/ && (( $throughput{ $runtime }) = $data =~ /([\d\.]+)/, next); $tag =~ /Little's Load/ && (( $littlesload{ $runtime}) = $data =~ /([\d\.]+)/, next); # ' $tag =~ /Average response time/ && (( $latency{ $runtime } ) = $data =~ /([\d\.]+)/, next); } close( FILE ); unless ( $throughput{ $runtime} ) { pop( @runs); # if we didn't get a throughput, then the # data is incomplete and just drop this run }}sub printdata { local ($timestamp, $num_clients, $conn_rate, $load, $latency, $error, $tput) = @_; format STDOUT =@<<<<<<<<<<< @###### @######.## @####.## @###.#### @####.#### @######.##$timestamp, $num_clients, $conn_rate, $load, $latency, $error, $tput. if (!$printedTitles) { $printedTitles = 1; ($ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput) = @title; format STDOUT_TOP =^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput---------------------------------------------------------------------------- . # write STDOUT_TOP; } # end if printedTitles write STDOUT;}sub PrintOutput { local( $runtime ); for $runtime (sort @runs) { &printdata( $runtime, $numclients{ $runtime}, $connrate{ $runtime}, $littlesload{ $runtime}, $latency{ $runtime}, $error{ $runtime}, $throughput{ $runtime}); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -