Catégories

Formatez vos résultats IOMETER

IOMETER est un logiciel permettant de benchmarker votre stockage en le sollicitant avec des conditions proches d’une production voire même un test de stress intensif ! Cependant les résultats obtenus avec IOMETER sont assez catastrophiques en terme de mise en page.

Bref, trève de blabla, vous observez que le résultat obtenu est immédiatement exploitable !

Voici donc le script PERL qui permet cette merveille !

<pre>#!/usr/bin/perl
#
# IOMeter results parser, 2005, Paul Venezia
#
#       Simply run this script in the directory containing the CSV output of IOMeter.
#       Results are organized by filename.
#
#

use File::Glob ':glob';
use Data::Dumper;

@files = &lt;*.csv&gt;;
my %results;
my $parmcount = 1;
my $lcount = 0;
foreach my $file (@files) {
	undef @lines;
	open (LOG, "&lt;$file");
	my @lines = &lt;LOG&gt;;
	foreach my $line (@lines) {
		$lcount++;
		if ($line =~ /'Access\sspecification\sname.+/) {
			$line = @lines[$lcount];
			$line =~ /(.+),\d/;
			#%results-&gt;{$file}-&gt;{test} = "$1";
			$thistest = "$1";
			#print $thistest;

		}
		if ($line =~ /ALL,All.+/) {
			#$line = @lines[$lcount];
			@thisres = (split(",", $line));
			%results-&gt;{$file}-&gt;{$thistest}{IOps} = @thisres[6];
			%results-&gt;{$file}-&gt;{$thistest}{ReadIOps} = @thisres[7];
			%results-&gt;{$file}-&gt;{$thistest}{WriteIOps} = @thisres[8];
			%results-&gt;{$file}-&gt;{$thistest}{MBps} = @thisres[9];
			%results-&gt;{$file}-&gt;{$thistest}{ReadMBps} = @thisres[10];
			%results-&gt;{$file}-&gt;{$thistest}{CPU} = @thisres[45];
		}

	}
$parmcount = 0;
$lcount = 0;

}

sub swrite {
  my $fmt = shift(@_);
  $^A = '';
  formline($fmt,@_);
  return $^A;
}

my %output;
foreach my $logfile ( sort keys %results ) {
	#$TXT .= "$logfile: \n";
	$header = 1;
	foreach $test ( sort keys %{$results{$logfile}} ) {
		foreach $tsize ( sort keys %{$results{$logfile}{$test}} ) {
			$output{$test}{$logfile}{$tsize} =  swrite("@&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;", $results{$logfile}{$test}{$tsize});
		}

	}
}

#print Dumper %results;
foreach $testsize ( sort keys %output ) {
	$TXT .= "$testsize\n";
	$header = 1;
	foreach $unit ( sort keys %{$output{$testsize}} ) {
		if ($header) {
			$TXT .= "\t\t";
			foreach $test ( sort keys %{$output{$testsize}{$unit}} ) {
				$TXT .= swrite("@&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; @&lt;&lt;&lt;&lt;&lt;&lt;", $test);
			}
			$TXT .= "\n";
			undef $header;
		}
		$testunit = $unit;
		$testunit =~ s/\.csv//;
		$TXT .= swrite("@&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; @&lt;&lt;&lt;&lt;&lt;", $testunit);

		foreach $test ( sort keys %{$output{$testsize}{$unit}} ) {
			$TXT .= swrite("@&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; @&lt;&lt;&lt;&lt;&lt;&lt;&lt;", $output{$testsize}{$unit}{$test});
		}
		$TXT .= "\n";
	}
	$TXT .= "\n";
}

print $TXT;
#print Dumper %output;</pre>
<pre>

Merci donc à Paul Venezia de nous avoir pondu ce script téléchargeable ici http://pvenezia.com/iw/iometer-parse.pl

image_pdfimage_print

Laisser un commentaire