---
+++
@@ -97,7 +97,7 @@
}
sub is_zero {
- return $_[0] < 2 && $_[0] > -2;
+ return $_[0] < 1 && $_[0] > -1;
}
# Comput the average leak rate and filter peaks
@@ -106,19 +106,30 @@
my @filtered = ();
if( defined $dleak_rate{$p} ) {
for(my $i = 0; $i < @{ $leak_rate{$p}{'leak'} } - 1; $i++) {
- if(($i < @{ $dleak_rate{$p} } && is_zero($dleak_rate{$p}[$i]))
+ if(($i < scalar(@{ $dleak_rate{$p} }) && is_zero($dleak_rate{$p}[$i]))
&& ($i > 1 && is_zero($dleak_rate{$p}[$i - 1]))) {
+ #if($p == 7033) {
+ # printf "%i %i\t\t%f %f\n", $i, scalar(@{ $dleak_rate{$p} }), $dleak_rate{$p}[$i], $dleak_rate{$p}[$i-1];
+ #}
push @filtered, $leak_rate{$p}{'leak'}[$i];
} else {
#print "filtered point for $p : $leak_rate{$p}{'leak'}[$i]\n";
}
}
- if(@filtered > 0 && sum( @filtered ) != 0) {
- printf "%6i : %10i : %s\n", $p, sum( @filtered ) / @filtered, $table{$p}{"cmd"};
+ if(scalar(@filtered) > 0) {
+ my $leak_rate = sum( @filtered ) / scalar(@filtered);
+ if($leak_rate >= 1.0) {
+ $leak_avg{$p} = $leak_rate;
+ #printf "%6i : %10i : %s / %f %f\n", $p, $leak_rate, $table{$p}{"cmd"}, sum( @filtered ), scalar(@filtered);
+ }
}
}
}
+# Display leaking process
+foreach my $p (sort { $leak_avg{$a} <=> $leak_avg{$b} } keys %leak_avg) {
+ printf "Process %i is leaking %i o/s (%s)\n", $p, $leak_avg{$p}, $table{$p}{"cmd"};
+}
# Save the datas:
Generated with KisssPM