This section provides more details and platform-specific information on the parameters of the vm.memory.size[<mode>]
agent item.
The following parameters are available for this item:
available
/total
*100)used
/total
*100)Some of these parameters are platform-specific and might not be available on your platform. Please refer to this page for details.
Platform-specific calculation of available and used:
Platform | "available" | "used" |
---|---|---|
AIX | free + cached | real memory in use |
FreeBSD | inactive + cached + free | active + wired + cached |
HP UX | free | total - free |
Linux<3.14 | free + buffers + cached | total - 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 |
NetBSD | inactive + execpages + file + free | total - free |
OpenBSD | inactive + free + cached | active + wired |
OSX | inactive + free | active + wired |
Solaris | free | total - free |
Win32 | free | total - 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 the "See also" section at the bottom of this page to find more detailed information about memory calculation in different OS.