Package: netmrg
Version: 0.18.2-14
Severity: normal
Tags: patch
When I looked at linux26diskaccess.pl I was surprised by the results.
I would like to monitor my disk traffic in bytes per second rather than
requests per second (the two are not correlated because of request
merging).
So I modified linux26diskaccess.pl so it supports the -rb and -wb
options which report these statistics.
At the same time I made some other changes:
* It can now monitor any disk device, not just IDE disks
* I tried to improve the usage message a bit
* I factorized the partition / raw device handling
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17.8fg1
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages netmrg depends on:
ii adduser 3.102 Add and remove users and groups
ii apache2-mpm-prefork [httpd 2.2.3-3.2 Traditional model for Apache HTTPD
ii debconf [debconf-2.0] 1.5.11 Debian configuration management sy
ii libc6 2.3.6.ds1-11 GNU C Library: Shared libraries
ii libgcc1 1:4.1.1-21 GCC support library
ii libmysqlclient15off 5.0.32-3 mysql database client library
ii libsnmp9 5.2.3-7 NET SNMP (Simple Network Managemen
ii libssl0.9.8 0.9.8c-4 SSL shared libraries
ii libstdc++6 4.1.1-21 The GNU Standard C++ Library v3
ii libxml2 2.6.27.dfsg-1 GNOME XML library
ii mysql-client-5.0 [mysql-cl 5.0.32-3 mysql database client binaries
ii php4 6:4.4.4-8 server-side, HTML-embedded scripti
ii php4-cli 6:4.4.4-8 command-line interpreter for the p
ii php4-mysql 6:4.4.4-8 MySQL module for php4
ii rrdtool 1.2.15-0.3 Time-series data storage and displ
ii wwwconfig-common 0.0.48 Debian web auto configuration
ii zlib1g 1:1.2.3-13 compression library - runtime
netmrg recommends no packages.
-- debconf information excluded
*** /usr/lib/netmrg/linux26diskaccess.pl
#!/usr/bin/perl
use strict;
### config variables
my $blockdev = "/sys/block";
### argument processing
if (@ARGV != 2 or
$ARGV[0] !~ /^-[rw]b?$/ or
$ARGV[1] !~ /^\w+(?:\d+)?$/)
{
print "U\n";
print "\n";
print "$0 [-r|-rb|-w|-wb] <dev(N)>\n";
print "\n";
print "Reports disk I/O statistics counters for use as a NetMRG test
script.\n";
print "\n";
print "Options:\n";
print " -r Report the number of read operations\n";
print " -rb Report the number of read bytes\n";
print " -w Report the number of write operations\n";
print " -wb Report the number of written bytes\n";
print " dev(n) Is a relative block device or partition name.\n";
print " For instance hda, hda1 or md0\n";
print "\n";
exit 1;
}
### figure out device/partitions
my ($hd, $partition);
if ($ARGV[1] =~ /^(hd\w)\d+$/)
{
$partition = $ARGV[1];
$hd = $1;
} # end if hd has a partition
else
{
$hd = $ARGV[1];
} # end else hd is just the drive
### read info from system block
# read the data from the correct path
my $path = "$blockdev/$hd";
$path .= "/$partition" if ($partition ne "");
$path .= "/stat";
open(STAT, $path) || die ("U\nERROR: couldn't open $path\n\n");
my $line = <STAT>;
close(STAT);
chomp($line);
my ($read, $readb, $write, $writeb);
if ($partition eq "")
{
($read, $readb, $write, $writeb)=(split /\s+/, $line)[0, 2, 4, 6];
}
else
{
($read, $readb, $write, $writeb)=split /\s+/, $line;
}
### output the data
if ($ARGV[0] eq "-r")
{
print "$read\n";
}
elsif ($ARGV[0] eq "-w")
{
print "$write\n";
}
elsif ($ARGV[0] eq "-rb")
{
$readb*=512;
print "$readb\n";
}
elsif ($ARGV[0] eq "-wb")
{
$writeb*=512;
print "$writeb\n";
}
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]