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]

Reply via email to