Sys-Statistics-Linux

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        );

        $lxs->get(); # without to sleep

    The initial statistics are stored to the temporary file:

        #> cat /tmp/pgswstats.yml
        --- 
        pgfault: 397040955
        pgmajfault: 4611
        pgpgin: 21531693
        pgpgout: 49511043
        pswpin: 8
        pswpout: 272
        time: 1236783534.9328

    Every time you call the script the initial statistics are loaded/stored
    from/to the file. This could be helpful if you doesn't run it as daemon
    and if you want to calculate the average load of your system since the
    last call. Do you understand? I hope so :)

    To get more information about the statistics refer the different modules

lib/Sys/Statistics/Linux.pm  view on Meta::CPAN

    );

    $lxs->get(); # without to sleep

The initial statistics are stored to the temporary file:

    #> cat /tmp/pgswstats.yml
    --- 
    pgfault: 397040955
    pgmajfault: 4611
    pgpgin: 21531693
    pgpgout: 49511043
    pswpin: 8
    pswpout: 272
    time: 1236783534.9328

Every time you call the script the initial statistics are loaded/stored from/to the file.
This could be helpful if you doesn't run it as daemon and if you want to calculate the
average load of your system since the last call. Do you understand? I hope so :)

To get more information about the statistics refer the different modules of the distribution.

lib/Sys/Statistics/Linux/PgSwStats.pm  view on Meta::CPAN

=head1 DESCRIPTION

Sys::Statistics::Linux::PgSwStats gathers paging and swapping statistics from the virtual F</proc> filesystem (procfs).

For more information read the documentation of the front-end module L<Sys::Statistics::Linux>.

=head1 PAGING AND SWAPPING STATISTICS

Generated by F</proc/stat> or F</proc/vmstat>.

    pgpgin      -  Number of pages the system has paged in from disk per second.
    pgpgout     -  Number of pages the system has paged out to disk per second.
    pswpin      -  Number of pages the system has swapped in from disk per second.
    pswpout     -  Number of pages the system has swapped out to disk per second.

    The following statistics are only available by kernels from 2.6.

    pgfault     -  Number of page faults the system has made per second (minor + major).
    pgmajfault  -  Number of major faults per second the system required loading a memory page from disk.

=head1 METHODS

lib/Sys/Statistics/Linux/PgSwStats.pm  view on Meta::CPAN

    my $self  = shift;
    my $class = ref $self;
    my $file  = $self->{files};
    my %stats = ();

    my $filename = $file->{path} ? "$file->{path}/$file->{stat}" : $file->{stat};
    open my $fh, '<', $filename or croak "$class: unable to open $filename ($!)";

    while (my $line = <$fh>) {
        if ($line =~ /^page\s+(\d+)\s+(\d+)$/) {
            @stats{qw(pgpgin pgpgout)} = ($1, $2);
        } elsif ($line =~ /^swap\s+(\d+)\s+(\d+)$/) {
            @stats{qw(pswpin pswpout)} = ($1, $2);
        }
    }

    close($fh);

    # if paging and swapping are not found in /proc/stat
    # then let's try a look into /proc/vmstat (since 2.6)

    if (!defined $stats{pswpout}) {
        my $filename = $file->{path} ? "$file->{path}/$file->{vmstat}" : $file->{vmstat};
        open my $fh, '<', $filename or croak "$class: unable to open $filename ($!)";
        while (my $line = <$fh>) {
            next unless $line =~ /^(pgpgin|pgpgout|pswpin|pswpout|pgfault|pgmajfault)\s+(\d+)/;
            $stats{$1} = $2;
        }
        close($fh);
    }

    return \%stats;
}

sub _deltas {
    my $self  = shift;

t/050-pgswstats.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Sys::Statistics::Linux;

my @pgswstats = qw(
   pgpgin
   pgpgout
   pswpin
   pswpout
);

my $sys = Sys::Statistics::Linux->new();

if (!-r '/proc/diskstats' || !-r '/proc/partitions' || !-r '/proc/stat' || !-r '/proc/vmstat') {
    plan skip_all => "it seems that your system doesn't provide paging/swapping statistics";
    exit(0);
}



( run in 0.620 second using v1.01-cache-2.11-cpan-df04353d9ac )