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 = <*.csv>; my %results; my $parmcount = 1; my $lcount = 0; foreach my $file (@files) { undef @lines; open (LOG, "<$file"); my @lines = <LOG>; foreach my $line (@lines) { $lcount++; if ($line =~ /'Access\sspecification\sname.+/) { $line = @lines[$lcount]; $line =~ /(.+),\d/; #%results->{$file}->{test} = "$1"; $thistest = "$1"; #print $thistest; } if ($line =~ /ALL,All.+/) { #$line = @lines[$lcount]; @thisres = (split(",", $line)); %results->{$file}->{$thistest}{IOps} = @thisres[6]; %results->{$file}->{$thistest}{ReadIOps} = @thisres[7]; %results->{$file}->{$thistest}{WriteIOps} = @thisres[8]; %results->{$file}->{$thistest}{MBps} = @thisres[9]; %results->{$file}->{$thistest}{ReadMBps} = @thisres[10]; %results->{$file}->{$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("@<<<<<<<<<<<<<<<<<<", $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("@>>>>>>>>>>>>> @<<<<<<", $test); } $TXT .= "\n"; undef $header; } $testunit = $unit; $testunit =~ s/\.csv//; $TXT .= swrite("@<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<", $testunit); foreach $test ( sort keys %{$output{$testsize}{$unit}} ) { $TXT .= swrite("@<<<<<<<<<<<<< @<<<<<<<", $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