Memory monitoring demystified

Having reliable information about the amount of system memory used is vital. As the one responsible for maintaining the systems running the business applications and services you need to monitor their memory consumption constantly. With CloudRadar, you can watch several system metrics - including memory - by installing an agent on your systems. Let's have a quick look at what all the memory metrics mean, and which should be monitored carefully.

Linux memory metrics

Total

The amount of memory that can be used by programs. The value is obtained by subtracting a few reserved bits and the kernel binary code from the amount of physical RAM available on the system.

Free

Physical memory not used by any programs. Since it is normal for the free memory to be a small percentage of the total memory, there is no need to monitor if the amount of free memory is low.

Shared

The amount of memory used for passing data between programs - a program can store some data in the shared memory, and other programs (when permitted) can access this data. You can check what is the maximum allowed using ipcs -lm, and monitor if the current amount of shared memory used reaches this limit.

Buffers

Memory used by kernel buffers for storing temporarily the metadata of the files and data residing under the page cache. Usually there is no need to monitor the buffers memory, since it is freed automatically when needed.

Cache

Memory used by the page cache. Keeping a page cache in (otherwise unused) portions of the main memory allows quicker access to the contents of cached pages, thus improving the overall performance of the system. As with the buffers memory, usually there is no need to monitor the cache memory.

Used

A value calculated by subtracting the amount of buffers, cache, and free memory from the total memory. Since it is normal for the used memory to be close to the total memory, there is no need to monitor if the amount of used memory is high.

Available

Estimated amount of memory that can be used for starting new programs without swapping. The mechanism for calculating the available memory is part of the Linux kernel. You should monitor the available memory, and set up notification if it gets low.

In general, it is recommended to monitor if the available memory falls to a small percentage of the total memory. You might also monitor the shared memory consumption, and optionally consider changing the maximum allowed shared memory on the system.


Windows memory metrics

Total

The amount of memory that can be used by Windows programs.

Free

Physical memory not used by any programs. Since it is normal for the free memory to be a small percentage of the total memory, there is no need to monitor if the amount of free memory is low.

Cache

The portion of total memory that has been used by the system recently. Having cache memory improves the overall performance of the system. When necessary, the system could flush the contents of cached memory to make room for newly summoned data. Usually there is no need to monitor the cache memory.

Used

A value calculated by subtracting the amount of free memory from the total memory. Since it is normal for the used memory to be close to the total memory, there is no need to monitor if the amount of used memory is high.

Available

Estimated amount of memory that can be used for starting new programs. The mechanism for calculating the available memory is part of the Windows system. You should monitor the available memory, and set up notification if it gets low.

In general, it is recommended to monitor if the available memory falls to a small percentage of the total memory.