Many times you may need to check RAM size in Linux, especially if you are a system administrator. There are several ways to measure RAM size as well as get free RAM in Linux. In this article, we will look at how to check RAM size in Linux.
How to Check RAM Size in Linux
Here are the different ways to check RAM Size in Linux.
1. Using free command
This is the most common way to find out free RAM space available in your system.
It provides total amount of free and used physical and swap space, as well as kernel buffers. When you don’t use any option, it provides the following information.
- total – displays the total installed memory
- used – displays the used memory
- free – displays the unused memory
- shared – displays the memory used by tmpfs
- buffers – displays the memory used by kernel buffers
- cached – displays the memory used by the page cache and slabs
- buffers/cache – displays the sum of buffers and cache
There are several options available in free command. Here are the commonly used ones.
- -b, – -bytes : displays the memory in bytes.
- -k, – -kilo : displays the amount of memory in kilobytes(default).
- -m, – -mega : displays the amount of memory in megabytes.
- -g, – -giga : displays the amount of memory in gigabytes.
- -h, – -human : Shows all output in human readable form such as in B(bytes), K(kilos), M(megas), G(gigas), and T(teras).
- -t, – -total : Adds an additional line in the output showing the column totals.
2. Using /proc/meminfo
Free command basically reads information from /proc/meminfo file which contains more exhaustive system details. You can directly view this file using less or cat command.
$ cat /proc/meminfo OR $ less /proc/meminfo
You will see the following kind of output.
MemTotal: 8277444 kB MemFree: 1328304 kB Buffers: 343152 kB Cached: 2341132 kB SwapCached: 0 kB Active: 5450532 kB Inactive: 973832 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 8277444 kB LowFree: 1328304 kB SwapTotal: 1052248 kB SwapFree: 1052248 kB ... Hugepagesize: 2048 kB
If you want to view specific parameters from /proc/meminfo, you can do so using grep command. Here is a grep command to fetch details about MemTotal & MemFree
$ grep MemTotal /proc/meminfo OR $ egrep 'MemTotal|MemFree' /proc/meminfo
3. Using vmstat command
You can also use vmstat command to view stats about system memory. It also shows additional information such as processes, paging, block IO, traps, and cpu activity. To view memory-related information, run the command with -s option.
$ vmstat -s
4. Using top command
You can also run the top command to get a dynamic view of processes running on your system, memory usage and free memory.
You can alternatively use htop or atop commands to get information related to process/memory.
The key difference between top and the previous commands is that top displays dynamic information about processes & memory, that updates constantly, while other commands give you a static information available at the point of running the commands.
In this article, we have learnt how to measure the total as well as free RAM size in Linux. You can use these commands on all Linux distributions since they are universally available. If you want to regularly check RAM size, you can add these commands into a shell script or cron job and run it periodically.
For example, you can simply open crontab with the following command:
and add the following line to fetch total and free memory space on your system, every day at 10.a.m. and write it to /home/mem.txt
* 10 * * * egrep 'MemTotal|MemFree|MemAvailable' /proc/meminfo >/home/mem.txt
Save and close the file to create the new cron job. Now you can just open /home/mem.txt file to view the free memory on that day.