Specifications

Analyze Collected Detailed Rate of Change Data
my $dev = shift;
my $blksize = shift;
my $interval = shift;
my ($max, $maxindex, $i, $first, $last, $total);
my $prev = -1;
my $first = $_[0];
if ($ENV{'OUTPUT_CSV'}) {print STDERR "$dev," }
foreach (@_) {
if ($prev != -1) {
if ($_ < $prev) {
dbg "wrap detected at $i ($_ < $prev)\n";
$prev = 0;
}
my $this = ($_ - $prev) * $blksize / $interval;
if ($this > $max) {
$max = $this;
$maxindex = $i;
}
if ($ENV{'OUTPUT_CSV'}) {print STDERR "$this," }
}
$prev = $_; # store current val for next time around
$last = $_;
$i++;
}
if ($ENV{'OUTPUT_CSV'}) {print STDERR "\n" }
return ($max, $maxindex, ($last - $first) * $blksize / ($interval * ($i
- 1)));
}
sub totals {# params: stat_hash
my $stat = shift;
my @totalvals;
foreach (keys %$stat) {
next if (!defined($stat{$_}));
my @vals = @{$stat{$_}};
my $i;
foreach (@vals) {
$totalvals[$i++] += $_;
}
}
272Installation and Configuration