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 -b
, -k
, -m
and -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`,