title: Linux: Detailed Usage of RAM, Swap, VMalloc and other Memory Areas
agents: linux
catalog: os/kernel
license: GPLv2
distribution: check_mk
description:
 This check measures all of the available memory readings of the complex
 Linux memory management, which are found in {/proc/meminfo}. You can
 define levels on every useful value, not only on RAM and Swap. Please
 note that the Linux memory management is very complex. This check takes
 all this into account and also correctly handles the concept of
 caching and the fact that Linux swaps out inactive parts of processes
 even if there is enough RAM left.

 This is not a bug, it's a feature. In fact it is the only way to do it right
 (at least for Linux): What parts of a process currently reside in physical
 RAM and what parts are swapped out is not related in a direct way with the
 current memory usage.

 Linux tends to swap out parts of processes even if RAM is available. It
 does this in situations where disk buffers (are assumed to) speed up the
 overall performance more than keeping rarely used parts of processes in RAM.

 For example after a complete backup of your system you might experiance
 that your swap usage has increased while you have more RAM free then
 before. That is because Linux has taken RAM from processes in order to
 increase disk buffers.

 Check Status:
 Per default the check status is either {OK} in case no RAM is corrupted or
 {CRIT} in case at least 1 Byte of RAM is corrupted. It is possible to
 change this behaviour by configuring the warning and critical levels in WATO
 group {OS} rule {Memory and Swap usage on Linux}. In case the parameter
 {Upper levels for Hardware Corrupted} is configured with {Absolute levels} or
 with {Percentual levels} the corresponding levels are considered to generate
 check status {WARN} or {CRIT}. In case the parameter is configured to
 {Do not impose levels} the check status is always {OK} independent of a
 possible RAM corruption.

discovery:
 One service is created for each Linux host.
