How to find how much RAM does my computer have?
How do I find out how much ram my computer has? I am running Ubuntu 13.04.
If you click on the gear icon (top right of your screen) then click on About this computer. The RAM is the 2nd entry down, below the computer name.
Edit
if you run
sudo lshw -class memory
in your terminal, this gives you the details of all available memory.That will tell you how much RAM the OS can see.
Also, to print just the amount in MiB: `lshw -C memory 2>/dev/null | grep -Po ' +size: \K.*'`
Also easy to use commands to check RAM:
free -lm
Using
top
command itself or:top | grep -i mem
Similar to
top
but a bit more advanced ishtop
but the package has to be installedsudo apt-get install htop
then run:htop
Will output memory scale in terminal.
Also
vmstat
can do this:vmstat -s -SM
In general
Please keep in mind - many solutions in this post will only show how much memory the operating system detects (e.g. 32bit without PAE can only see 4GB)
Detect memory slots and state using dmidecode
Assuming you have sudo permissions you can use the
dmidecode
command to detect the amount of memory slots and what is inserted into them right now.Example usage:
sudo dmidecode
Or even better, filtered just for memory related informations:
sudo dmidecode -t 17
Outputs in my case:
# dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. Handle 0x002F, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: ChannelA_Dimm1 Bank Locator: ChannelA Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: A-DATA Serial Number: 0000762C Asset Tag: ChannelA_Dimm1_AssetTag Part Number: DDR3 1600G Rank: 2 Configured Clock Speed: 1333 MHz Handle 0x0031, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: No Module Installed Form Factor: DIMM Set: None Locator: ChannelA_Dimm2 Bank Locator: ChannelA Type: Unknown Type Detail: Synchronous Speed: Unknown Manufacturer: ChannelA_Dimm2_Manufacturer Serial Number: ChannelA_Dimm2_SerNum Asset Tag: ChannelA_Dimm2_AssetTag Part Number: ChannelA_Dimm2_PartNum Rank: Unknown Configured Clock Speed: Unknown Handle 0x0033, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: ChannelB_Dimm1 Bank Locator: ChannelB Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: A-DATA Serial Number: 000028C3 Asset Tag: ChannelB_Dimm1_AssetTag Part Number: DDR3 1600G Rank: 2 Configured Clock Speed: 1333 MHz Handle 0x0035, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: No Module Installed Form Factor: DIMM Set: None Locator: ChannelB_Dimm2 Bank Locator: ChannelB Type: Unknown Type Detail: Synchronous Speed: Unknown Manufacturer: ChannelB_Dimm2_Manufacturer Serial Number: ChannelB_Dimm2_SerNum Asset Tag: ChannelB_Dimm2_AssetTag Part Number: ChannelB_Dimm2_PartNum Rank: Unknown Configured Clock Speed: Unknown Handle 0x0037, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: ChannelC_Dimm1 Bank Locator: ChannelC Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: A-DATA Serial Number: 000028E7 Asset Tag: ChannelC_Dimm1_AssetTag Part Number: DDR3 1600G Rank: 2 Configured Clock Speed: 1333 MHz Handle 0x0039, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: No Module Installed Form Factor: DIMM Set: None Locator: ChannelC_Dimm2 Bank Locator: ChannelC Type: Unknown Type Detail: Synchronous Speed: Unknown Manufacturer: ChannelC_Dimm2_Manufacturer Serial Number: ChannelC_Dimm2_SerNum Asset Tag: ChannelC_Dimm2_AssetTag Part Number: ChannelC_Dimm2_PartNum Rank: Unknown Configured Clock Speed: Unknown Handle 0x003B, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: ChannelD_Dimm1 Bank Locator: ChannelD Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: A-DATA Serial Number: 000028F0 Asset Tag: ChannelD_Dimm1_AssetTag Part Number: DDR3 1600G Rank: 2 Configured Clock Speed: 1333 MHz Handle 0x003D, DMI type 17, 34 bytes Memory Device Array Handle: 0x002D Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: No Module Installed Form Factor: DIMM Set: None Locator: ChannelD_Dimm2 Bank Locator: ChannelD Type: Unknown Type Detail: Synchronous Speed: Unknown Manufacturer: ChannelD_Dimm2_Manufacturer Serial Number: ChannelD_Dimm2_SerNum Asset Tag: ChannelD_Dimm2_AssetTag Part Number: ChannelD_Dimm2_PartNum Rank: Unknown Configured Clock Speed: Unknown Invalid entry length (16). Fixed up to 11.
The output tells you about 8 slots, 4 being used, each featuring 4GB memory.
Detect memory using lshw
Assuming you have sudo permissions you can use the
lshw
command to detect the amount of memory slots and what is inserted into them right now.Example usage:
lshw
or just to get memory related informations:
lshw -class memory
Outputs in my case:
*-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: 3203 date: 11/26/2012 size: 64KiB capacity: 8128KiB capabilities: pci apm upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification uefi *-cache:0 description: L1 cache physical id: 5 slot: L1-Cache size: 32KiB capacity: 32KiB capabilities: internal write-back unified configuration: level=1 *-cache:1 description: L2 cache physical id: 6 slot: L2-Cache size: 256KiB capacity: 256KiB capabilities: internal varies unified configuration: level=2 *-cache:2 description: L3 cache physical id: 7 slot: L3-Cache size: 10MiB capacity: 10MiB capabilities: internal varies unified configuration: level=3 *-memory description: System Memory physical id: 2d slot: System board or motherboard size: 16GiB *-bank:0 description: DIMM DDR3 Synchronous 1333 MHz (0,8 ns) product: DDR3 1600G vendor: A-DATA physical id: 0 serial: 0000762C slot: ChannelA_Dimm1 size: 4GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:1 description: DIMM Synchronous [empty] product: ChannelA_Dimm2_PartNum vendor: ChannelA_Dimm2_Manufacturer physical id: 1 serial: ChannelA_Dimm2_SerNum slot: ChannelA_Dimm2 width: 64 bits *-bank:2 description: DIMM DDR3 Synchronous 1333 MHz (0,8 ns) product: DDR3 1600G vendor: A-DATA physical id: 2 serial: 000028C3 slot: ChannelB_Dimm1 size: 4GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:3 description: DIMM Synchronous [empty] product: ChannelB_Dimm2_PartNum vendor: ChannelB_Dimm2_Manufacturer physical id: 3 serial: ChannelB_Dimm2_SerNum slot: ChannelB_Dimm2 width: 64 bits *-bank:4 description: DIMM DDR3 Synchronous 1333 MHz (0,8 ns) product: DDR3 1600G vendor: A-DATA physical id: 4 serial: 000028E7 slot: ChannelC_Dimm1 size: 4GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:5 description: DIMM Synchronous [empty] product: ChannelC_Dimm2_PartNum vendor: ChannelC_Dimm2_Manufacturer physical id: 5 serial: ChannelC_Dimm2_SerNum slot: ChannelC_Dimm2 width: 64 bits *-bank:6 description: DIMM DDR3 Synchronous 1333 MHz (0,8 ns) product: DDR3 1600G vendor: A-DATA physical id: 6 serial: 000028F0 slot: ChannelD_Dimm1 size: 4GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:7 description: DIMM Synchronous [empty] product: ChannelD_Dimm2_PartNum vendor: ChannelD_Dimm2_Manufacturer physical id: 7 serial: ChannelD_Dimm2_SerNum slot: ChannelD_Dimm2 width: 64 bits
Show memory informations using free
You can use the
free
command to get informations about your memory.Example usage:
free
Output:
total used free shared buff/cache available Mem: 16374920 4653296 155360 9349708 11566264 1953928 Swap: 16715772 4060816 12654956
Add the
-h
parameter to get a more human readable outputtotal used free shared buff/cache available Mem: 15G 4,4G 249M 8,9G 11G 1,9G Swap: 15G 3,9G 12G
In case you want to monitor memory usage consider combining
watch
andfree
as followswatch free
This will output the normal
free
output seen above, but update it all 2 seconds (usingwatch
)Show memory informations using /proc/meminfo
You can use
/proc/meminfo
to get some memory informations as well.Example:
cat /proc/meminfo
Output:
MemTotal: 16374920 kB MemFree: 211408 kB MemAvailable: 2036568 kB Buffers: 34856 kB Cached: 11248956 kB SwapCached: 1572 kB Active: 5451788 kB Inactive: 10119984 kB Active(anon): 4508180 kB Inactive(anon): 9133120 kB Active(file): 943608 kB Inactive(file): 986864 kB Unevictable: 13444 kB Mlocked: 13444 kB SwapTotal: 16715772 kB SwapFree: 12654936 kB Dirty: 1016 kB Writeback: 0 kB AnonPages: 4300076 kB Mapped: 5466584 kB Shmem: 9349796 kB Slab: 309332 kB SReclaimable: 230976 kB SUnreclaim: 78356 kB KernelStack: 17216 kB PageTables: 77140 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 24903232 kB Committed_AS: 28709200 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 1863680 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 737312 kB DirectMap2M: 14934016 kB DirectMap1G: 1048576 kB
As @Serg pointed out you should use
awk
to shrink the output down to the most essentialExample:
awk '/MemTotal/ || /SwapTotal/' /proc/meminfo
Output:
MemTotal: 16374920 kB SwapTotal: 16715772 kB
Show memory informations using vmstat
You can use the
vmstat
command as well.Example:
vmstat
Output:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 4060888 238300 35576 11506488 0 2 120 55 17 4 18 6 74 2 0
It could be displayed more readable as follows:
vmstat -s -SM
Output:
15991 M total memory 4467 M used memory 5322 M active memory 9837 M inactive memory 253 M free memory 34 M buffer memory 11235 M swap cache 16323 M total swap 3965 M used swap 12358 M free swap 17691507 non-nice user cpu ticks 21078371 nice user cpu ticks 13384959 system cpu ticks 161496078 idle cpu ticks 4951342 IO-wait cpu ticks 0 IRQ cpu ticks 40582 softirq cpu ticks 0 stolen cpu ticks 263184336 pages paged in 119297582 pages paged out 1824 pages swapped in 1018199 pages swapped out 1111772384 interrupts 2371898713 CPU context switches 1473060064 boot time 1983609 forks
Monitoring ram usage
There are several tools which help monitoring ram/ memory usage. I'll name some here
top
andhtop
are both tools which constantly update the current memory usage.Using smem
smem
reports usage with shared memory divided prportionally.Example (sorted):
smem -r
Output:
7948 USERNAME /usr/lib/firefox/firefox 0 975580 997022 1027100 23748 USERNAME /usr/bin/perl /usr/bin/shut 0 456392 459957 472116 16341 USERNAME /opt/google/chrome/chrome - 0 401220 405063 419520 22977 USERNAME /home/fpoeck/.dropbox-dist/ 0 240332 240487 245712 23751 USERNAME /usr/bin/python /usr/share/ 0 204524 205538 214656 32449 USERNAME /usr/lib/thunderbird/thunde 0 191124 191657 200892 13531 USERNAME /opt/atom/atom --type=rende 0 124740 131853 144340
Good way to check is to reference
/proc/meminfo
file. Most tools such as free, top, htop all use that file.There's many lines there showing different statistics, but using AWK, we can filter out the totals. MemTotal line will show you the RAM. As a bonus, I've included total Swap as well.
$ awk '/MemTotal/ || /SwapTotal/' /proc/meminfo MemTotal: 1789444 kB SwapTotal: 524284 k
Open a terminal: Ctrl +Alt + T
Then type:
sudo lshw
Open System Settings.
Click Details at the bottom of the panel.
You will see details about your PC (such as RAM).
I like the output that
sudo dmidecode -t 17
gives. Here's what it says about my machine:# dmidecode 2.12 # SMBIOS entry point at 0x000f0480 SMBIOS 2.7 present. Handle 0x0009, DMI type 17, 34 bytes Memory Device Array Handle: 0x0007 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: A1_DIMM0 Bank Locator: A1_BANK0 Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: Undefined Serial Number: 000001D2 Asset Tag: A1_AssetTagNum0 Part Number: SLA302G08-EDJ1C Rank: 2 Configured Clock Speed: Unknown Handle 0x000D, DMI type 17, 34 bytes Memory Device Array Handle: 0x0007 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: A1_DIMM2 Bank Locator: A1_BANK2 Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: Undefined Serial Number: 0000017F Asset Tag: A1_AssetTagNum2 Part Number: SLA302G08-EDJ1C Rank: 2 Configured Clock Speed: 2 MHz
I like the fact that it gives you a simple human-readable description of how much RAM is in each slot - 2 x
Size: 4096 MB
in the example above (so I have 8GB RAM total). And that it breaks it down by slot, so you have a bit more idea about what your upgrade options are.dmidecode
(man page) tells you about your system's hardware. Specifying-t 17
filters by the "Memory Device" type.Please try:
free -h
Output will be something like:
total used free shared buff/cache available Mem: 62G 49G 387M 723M 13G 12G Swap: 0B 0B 0B
License under CC-BY-SA with attribution
Content dated before 6/26/2020 9:53 AM
Wilf 5 years ago
Note for many solutions it will only tell you how RAM the OS can 'see' (e.g. 32bit without PAE can only see 4GB)