NAME

Sys::Statistics::Linux::CpuStats - Collect linux cpu statistics.

SYNOPSIS

use Sys::Statistics::Linux::CpuStats;

my $lxs = new Sys::Statistics::Linux::CpuStats;
$lxs->init;
sleep 1;
my $stats = $lxs->get;

DESCRIPTION

This module collects cpu statistics from the /proc filesystem. It is tested on x86 hardware with the distributions SuSE (SuSE on s390 and s390x architecture as well), Red Hat, Debian and Mandrake on kernel versions 2.4 and 2.6 but should also running on other linux distributions with the same kernel release number. To run this module it is necessary to start it as root or another user with the authorization to read the /proc filesystem.

DELTAS

It's necessary to initialize the statistics by calling init(), because the statistics are deltas between the call of init() and get(). By calling get() the deltas be generated and the initial values be updated automatically. This way making it possible that the call of init() is only necessary after the call of new(). Further it's recommended to sleep for a while - at least one second - between the call of init() and/or get() if you want to get useful statistics.

CPU STATISTICS

Generated by /proc/stat for each cpu (cpu0, cpu1 ...). cpu without a number is the summary.

user    -  Percentage of CPU utilization at the user level.
nice    -  Percentage of CPU utilization at the user level with nice priority.
system  -  Percentage of CPU utilization at the system level.
idle    -  Percentage of time the CPU is in idle state.
iowait  -  Percentage of time the CPU is in idle state because an i/o operation is waiting for a disk.
total   -  Total percentage of CPU utilization at user and system level.

METHODS

All methods

C<new()>
C<init()>
C<get()>

new()

Call new() to create a new object.

my $lxs = new Sys::Statistics::Linux::CpuStats;

init()

Call init() to initialize the statistics.

$lxs->init;

get()

Call get() to get the statistics. get() returns the statistics as a hash reference.

my $stats = $lxs->get;

EXPORTS

No exports.

SEE ALSO

proc(5)

REPORTING BUGS

Please report all bugs to <jschulz.cpan(at)bloonix.de>.

AUTHOR

Jonny Schulz <jschulz.cpan(at)bloonix.de>.

COPYRIGHT

Copyright (c) 2006, 2007 by Jonny Schulz. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.