]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
scripts: fix mds and osd request latency checkers
authorSage Weil <sage@newdream.net>
Tue, 14 Apr 2009 15:24:54 +0000 (08:24 -0700)
committerSage Weil <sage@newdream.net>
Tue, 14 Apr 2009 15:24:54 +0000 (08:24 -0700)
src/script/check_mds_request_latency.pl
src/script/check_osd_request_latency.pl

index 55b71a2591b63e0481d6ac6792a1abea1495df43..5709c362c2c3380bf0adc13534945b97a4fcda96 100755 (executable)
@@ -18,28 +18,26 @@ while (<>) {
     chomp;
     my ($stamp) = /^\S+ (\S+)/;
 
-    my ($what,$req,$desc) = /\d+ -- \S+ mds\d+ ... client\d+ \S+ \S+ client_(request|reply)\((\S+) ([^\)]+)/;
+    my ($req,$desc) = /\d+ -- \S+ mds\d+ ... client\d+ \S+ \d+ \S+ client_request\((\S+) ([^\)]+)/;
     
     if (defined $req) {
-       #print "$what $req at $stamp $desc\n";
-       if ($what eq 'request') {
-           $r{$req} = $stamp;
-           $what{$req} = $desc;
-       } elsif ($what eq 'reply') {
-           if (exists $r{$req}) {
-               my $len = tosec($stamp) - tosec($r{$req});
-
-               #print "$req $len ($r{$req} - $stamp)\n";
-               $lat_req{$len} = $req;
-
-               delete $r{$req};
-           }
-       } else {
-           die;
-       }
+       #print "$req $len ($r{$req} - $stamp)\n";
+       $r{$req} = $stamp;
+       $what{$req} = $desc;
+       next;
     }
 
-    
+    ($req,$desc) = /\d+ -- \S+ mds\d+ ... client\d+ \S+ \S+ client_reply\((\S+) ([^\)]+)/;
+    if (defined $req) {
+       if (exists $r{$req}) {
+           my $len = tosec($stamp) - tosec($r{$req});
+           
+           #print "$req $len ($r{$req} - $stamp)\n";
+           $lat_req{$len} = $req;
+           
+           delete $r{$req};
+       }
+    }
 }
 
 
index 910b9906c667e443d24d3f86762e073232c730a3..134cc0c132ed44c666e646a254787ce9857a2455 100755 (executable)
@@ -4,6 +4,7 @@ use strict;
 
 my %r;      # reqid -> start
 my %lat_req;  # latency -> request
+my %desc;
 
 sub tosec($) {
     my $v = shift;
@@ -17,10 +18,11 @@ while (<>) {
     chomp;
     my ($stamp) = /^\S+ (\S+) /;
 
-    my ($who,$tid) = /osd\d+ <.. (\D+\d+) \S+ \S+ osd_op\((\S+)/;
+    my ($who,$tid,$desc) = /osd\d+ <.. (\D+\d+) \S+ \d+ \S+ osd_op\((\S+) ([^\)]+)/;
     if (defined $tid) {
        my $req = "$who:$tid";
        $r{$req} = $stamp unless exists $r{$req};
+       $desc{$req} = $desc;
        next;
     }
 
@@ -42,5 +44,5 @@ while (<>) {
 
 
 for my $len (sort {$b <=> $a} keys %lat_req) {
-    print "$len\t$lat_req{$len}\n";    
+    print "$len\t$lat_req{$len}\t$desc{$lat_req{$len}}\n";    
 }