2 vm.memory.size parameters

Overview

This section provides some parameter details for the vm.memory.size[<mode>] agent item.

Parameters

The following parameters are available for this item:

  • active - memory currently in use or very recently used, and so it is in RAM

  • anon - memory not associated with a file (cannot be re-read from it)

  • available - available memory, calculated differently depending on the platform (see the table below)

  • buffers - cache for things like file system metadata

  • cached - cache for various things

  • exec - executable code, typically from a (program) file

  • file - cache for contents of recently accessed files

  • free - memory that is readily available to any entity requesting memory

  • inactive - memory that is marked as not used

  • pavailable - ‘available’ memory as percentage of ‘total’ (calculated as available/total*100)

  • pinned - same as ‘wired’

  • pused - ‘used’ memory as percentage of ‘total’ (calculated as used/total*100)

  • shared - memory that may be simultaneously accessed by multiple processes

  • slab - total amount of memory used by the kernel to cache data structures for its own use

  • total - total physical memory available

  • used - used memory, calculated differently depending on the platform (see the table below)

  • wired - memory that is marked to always stay in RAM. It is never moved to disk.

Some of these parameters are platform-specific and might not be available on your platform. See Items supported by platform for details.

Platform-specific calculation of available and used:

Platform“available”“used”
AIXfree + cachedreal memory in use
FreeBSDinactive + cached + freeactive + wired + cached
HP UXfreetotal - free
Linux<3.14free + buffers + cachedtotal - free
Linux 3.14+
(also backported to 3.10 on RHEL 7)
/proc/meminfo, see “MemAvailable” in Linux kernel documentation for details.
Note that free + buffers + cached is no longer equal to ‘available’ due to not all the page cache can be freed and low watermark being used in calculation.
total - free
NetBSDinactive + execpages + file + freetotal - free
OpenBSDinactive + free + cachedactive + wired
OSXinactive + freeactive + wired
Solarisfreetotal - free
Win32freetotal - free

The sum of vm.memory.size[used] and vm.memory.size[available] does not necessarily equal total. For instance, on FreeBSD:
* Active, inactive, wired, cached memories are considered used, because they store some useful information.
* At the same time inactive, cached, free memories are considered available, because these kinds of memories can be given instantly to processes that request more memory.

So inactive memory is both used and available simultaneously. Because of this, the vm.memory.size[used] item is designed for informational purposes only, while vm.memory.size[available] is designed to be used in triggers.

See also

  1. Additional details about memory calculation in different OS