The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Linux::Info::MemStats - Collect linux memory information.

SYNOPSIS

    use Linux::Info::MemStats;

    my $lxs  = Linux::Info::MemStats->new;
    my $stat = $lxs->get;

DESCRIPTION

Linux::Info::MemStats gathers memory statistics from the virtual /proc filesystem (procfs).

For more information read the documentation of the front-end module Linux::Info.

MEMORY INFORMATIONS

Generated by /proc/meminfo.

Check out the SEE ALSO section for details on what is extracted and what it means. The list is extensive and Linux kernel is always being updated to keep track of it here.

METHODS

new()

Call new() to create a new object.

    my $lxs = Linux::Info::MemStats->new;

It's possible to set the path to the proc filesystem.

     Linux::Info::MemStats->new(
        files => {
            # This is the default
            path    => '/proc',
            meminfo => 'meminfo',
        }
    );

get()

get() returns the statistics as a hash reference.

    my $stats_ref = $lxs->get;

This is the original method as defined in Sys::Statistics::Linux distribution and was kept here for backward compatibility since the amount of information returned is somehow limited, for example, there is no Hugepages information included. Of course, you might not need it anyway, but as time goes by the Linux kernel might include more information (and remove some) and it's hard to keep track of it.

Short long story: if this method returns the information you need it, use it, since the other method get_more will be slower.

Here is the list of information returned explained:

memused - Total size of used memory in kilobytes. memfree - Total size of free memory in kilobytes. memusedper - Total size of used memory in percent. memtotal - Total size of memory in kilobytes. buffers - Total size of buffers used from memory in kilobytes. cached - Total size of cached memory in kilobytes. realfree - Total size of memory is real free (memfree + buffers + cached). realfreeper - Total size of memory is real free in percent of total memory. swapused - Total size of swap space is used is kilobytes. swapfree - Total size of swap space is free in kilobytes. swapusedper - Total size of swap space is used in percent. swaptotal - Total size of swap space in kilobytes. swapcached - Memory that once was swapped out, is swapped back in but still also is in the swapfile. active - Memory that has been used more recently and usually not reclaimed unless absolutely necessary. inactive - Memory which has been less recently used and is more eligible to be reclaimed for other purposes. On earlier kernels (2.4) Inact_dirty + Inact_laundry + Inact_clean.

The following statistics are only available by kernels from 2.6.

slab - Total size of memory in kilobytes that used by kernel for data structure allocations. dirty - Total size of memory pages in kilobytes that waits to be written back to disk. mapped - Total size of memory in kilbytes that is mapped by devices or libraries with mmap. writeback - Total size of memory that was written back to disk. committed_as - The amount of memory presently allocated on the system.

The following statistic is only available by kernels from 2.6.9.

commitlimit - Total amount of memory currently available to be allocated on the system.

get_more

It does the same thing as get, but returns all data read from /proc/meminfo.

It also includes inactive for the same purposes, but due the amount of data read, is a bit slower than get.

EXPORTS

Nothing.

SEE ALSO

AUTHOR

Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 of Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>.

This file is part of Linux Info project.

Linux-Info is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Linux-Info is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Linux Info. If not, see <http://www.gnu.org/licenses/>.