How to Check Memory Usage in Linux
3 min read
When troubleshooting system or application slowdown or misbehavior, one of the first things to check is the system memory usage.
This article explains how to check RAM usage in Linux using several different commands.
free is the most commonly used command for checking the memory usage of a Linux system. It displays information about the total, used, and free memory.
free is invoked with the
-h option that means print the output in human-readable format:
total used free shared buff/cache available Mem: 3936 1087 252 130 2596 2427 Swap: 0 0 0
Here’s what each column mean:
- total - The total amount of memory that can be used by the applications.
- used - Used memory. It is calculated as:
used = total - free - buffers - cache
- free - Free / Unused memory.
- shared - This column can be ignored; it is shown only for backward compatibility.
- buff/cache - The combined memory used by the kernel buffers and page cache and slabs. This memory can be reclaimed at any time if needed by the applications.
- available - An estimate of the memory that is available for starting new applications, without swapping.
free command prints information for the physical memory and the system swap .
top is a command-line utility that displays real-time information about the running processes. It also shows the system summary, including memory usage.
To invoke the command simply type
The output will look something like this:
The header of the output includes information about the system’s total, free, and used physical and swap memory.
%MEM column provides information about the used share of the available physical memory for each running process.
The simplest way to check the RAM memory usage is to display the contents of the
/proc/meminfo virtual file. This file is used by the
ps , and other system information commands.
The file includes a large amount of information about the systems memory and swap usage:
MemTotal: 4030592 kB MemFree: 401804 kB MemAvailable: 2507504 kB ...
The information from the
/proc/meminfo file can be parsed and used in shell scripts.
ps_mem is a Python script that reports per-program RAM memory usage. It work with both Python 2 and 3 and can be installed with
sudo pip3 install ps_mem
ps_mem requires administrator privileges:
The output will include the memory usage of each running program in ascending order:
Private + Shared = RAM used Program ... 11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4) 8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald 55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6) 233.9 MiB + 234.0 MiB = 467.9 MiB redis-server 578.2 MiB + 578.6 MiB = 1.1 GiB mysqld --------------------------------- 2.2 GiB =================================
This script is useful when you want to find out which running program is taking most of your system memory.
We have shown you several commands that you can use to check the system memory usage.
If you have any questions or remarks, please leave a comment below.