NAME
Linux::loadavg - Get system load averages (via getloadavg(3C) system call)
SYNOPSIS
use Linux::loadavg;
my @avgs = loadavg();
printf "Load average: %s (1m,5m,15m)\n", join(', ',@avgs);
DESCRIPTION
The Linux::loadavg module provides simple interface to Linux getloadavg(3C) library function, which returns the number of processes in the system run queue averaged over various periods of time. Up to 3 samples are retrieved and returned to successive elements of the output array. The system imposes a maximum of 3 samples, representing averages over the last 1, 5 and 15 minutes, respectively.
The LOADAVG_1MIN, LOADAVG_5MIN, and LOADAVG_15MIN indices can be used to extract the data from the appropriate element of the output array.
When called without an argument, the loadavg() function returns all three load averages.
EXPORT
- loadavg
- LOADAVG_1MIN
- LOADAVG_5MIN
- LOADAVG_15MIN
EXAMPLE
use strict;
# Autodetect Linux::loadavg or Solaris::loadavg
die $@ if eval sprintf('use %s::loadavg qw(loadavg)', ucfirst $^O) || $@;
# Get the first two load averages
my @avgs = loadavg(2);
printf "first load avg (1min): %f\n", $avgs[LOADAVG_1MIN];
printf "second load avg (5min): %f\n", $avgs[LOADAVG_5MIN];
# Call and print only 5 minute value
printf "5 minute load: %f\n",(loadavg(2))[LOADAVG_5MIN];
AUTHOR
Niels van Dijke, <CpanDotOrgAtPerlboyDotNet>
CREDITS
The Linux::loadavg was nearly one on one based on Solaris::loadavg. Therefore credits should go to: Alexander Golomshtok (https://metacpan.org/author/AGOLOMSH). Version 0.10 and above the XS code has been improved using Sys::LoadAvg XS code by Jeremy Madea (https://metacpan.org/author/JEREMY).
LICENSE
This module has the same license as Perl 5 itself. The explicit license can be found in the LICENSE file distributed with the tar.gz archive.