An article explaining how to check physical memory (RAM) in the Linux server. 4 different commands to get memory information from the Linux server.
In this article we will see basic commands to check physical memory on a server in Linux. Many beginners struggle with knowing their system well in context to resources like CPU, Memory, disks, etc. So I decided to write this small article pinpointing commands to check RAM on the Linux server. These commands will work in different flavors of Linux like Red Hat, CentOS, Suse, Ubuntu, Fedora, Debian, etc.
Without much delay lets dive into commands –
1. Using free command
The first command is free. This is the simplest command to check your physical memory. This command is mainly used for checking RAM and SWAP on the system. Using different switch you can change the byte-format of output. Like
-b for bytes,
-k for kilobytes,
-m for megabytes and
-g for gigabytes.
Check row with
Mem: and number against it. That’s the physical RAM of your server.
root@kerneltalks # free -b total used free shared buffers cached Mem: 135208493056 1247084544 133961408512 0 175325184 191807488 -/+ buffers/cache: 879951872 134328541184 Swap: 17174347776 0 17174347776 root@kerneltalks # free -k total used free shared buffers cached Mem: 132039544 1218368 130821176 0 171216 187316 -/+ buffers/cache: 859836 131179708 Swap: 16771824 0 16771824 root@kerneltalks # free -m total used free shared buffers cached Mem: 128944 1189 127754 0 167 182 -/+ buffers/cache: 839 128105 Swap: 16378 0 16378 root@kerneltalks # free -g total used free shared buffers cached Mem: 125 1 124 0 0 0 -/+ buffers/cache: 0 125 Swap: 15 0 15
In the above output you can see the system is installed with 125GB of physical RAM (observe highlighted rows). By using a different switch
-g output changed numbers according to selected byte-format.
2. Using /proc/meminfo file
Another way is to read memory info from the proc filesystem.
/proc/meminfo is the file you should read to get detailed information about memory. The very first line or line starts with
MemTotal is your total physical memory on the server.
root@kerneltalks # cat /proc/meminfo |grep MemTotal MemTotal: 132039544 kB
As you can see from output, memory is displayed in kilobytes.
3. Using top command
The famous top command also lists physical memory information in a very clear way. In the upper section of the
top command output lies the CPU, Memory, and SWAP information.
root@kerneltalks # top top - 16:03:41 up 89 days, 3:43, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 141 total, 1 running, 140 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 132039544k total, 1218336k used, 130821208k free, 171224k buffers Swap: 16771824k total, 0k used, 16771824k free, 187420k cached
I clipped the above section of the
top command output in the above example. Check second last line saying
Mem: (highlighted row). This shows physical memory in kilobytes. You can see the total, used, and free portions of it. Total is your actual RAM installed on the server.
4. Using vmstat
Another way is to use
vmstat (virtual memory stats) command with
-s switch. This will list memory in detail with the first-line being total memory on the server.
# vmstat -s 132039544 total memory 1218692 used memory 181732 active memory ----output trimmed----
Memory is displayed in kilobytes by default. The very first line shows you total memory on the server.
None of these show *total physical memory*. They show memory information where total memory is total physical memory MINUS kernel and some bits.
To find *total physical memory* one need to use things like `dmidecode –type memory`,