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
Je travaille actuellement en tant qu’Enterprise Architect pour le groupe CAPGEMINI. Acteur et expert communautaire reconnu depuis de nombreuses années, j’anime cette communauté autour des technologies Microsoft, modère les forums officiels Microsoft Technet et participe régulièrement aux évènements tels que les Microsoft Techdays/Expériences ou les Microsoft Days en tant qu’Ask The Expert ou speaker. Je suis à l’origine de nombreuses publications dans la presse IT.
Mon implication communautaire m’a valu la reconnaissance de mes pairs et de Microsoft Corp au titre de Most Valuble Professionnal depuis plus de 9 années et suis également Microsoft P-Seller.