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.

    Note for many solutions it will only tell you how RAM the OS can 'see' (e.g. 32bit without PAE can only see 4GB)

  • SimplySimon

    SimplySimon Correct answer

    7 years ago

    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 is htop but the package has to be installed sudo 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 output

                  total        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 and free as follows

    watch free
    

    This will output the normal free output seen above, but update it all 2 seconds (using watch)

    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 essential

    Example:

    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 and htop are both tools which constantly update the current memory usage.

    htop

    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

    1. Open System Settings.

    2. Click Details at the bottom of the panel.

    3. 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

Tags used