meminfo
Table of Contents
free
$free -m
total used free shared buffers cached
Mem: 7890 7157 732 801 283 3444
-/+ buffers/cache: 3429 4460
Swap: 3905 0 3905
- The m option displays all data in MBs.
- The total amount of RAM installed on the system is 7890MB.
- The used column shows the amount of RAM that has been used by linux.
- The left columns mean: shared memory, buffered memory and cached memory.
- The second line tells that 4.4 GB is free. This is the free memory in first line added with the buffers and cached amount of memory.
- Swap memory.
meminfo
$ cat /proc/meminfo MemTotal: 1031016 kB MemFree: 13548 kB MemShared: 0 kB Buffers: 98064 kB Cached: 692320 kB SwapCached: 2244 kB Active: 563112 kB Inact_dirty: 309584 kB Inact_clean: 79508 kB Inact_target: 190440 kB HighTotal: 130992 kB HighFree: 1876 kB LowTotal: 900024 kB LowFree: 11672 kB SwapTotal: 1052248 kB SwapFree: 1043908 kB Committed_AS: 332340 kB VmallocTotal: 34359738367 kB VmallocUsed: 365584 kB VmallocChunk: 34359365208 kB
High-Level Statistics
- MemTotal: HighTotal + LowTotal. Total usable ram (i.e. physical ram minus a few reserved bits and the kernel binary code).
- MemFree: LowFree + HighFree. sum of LowFree+HighFree (overall stat).
- MemShared: 0; is here for compat reasons but always zero.
- Buffers: Memory in buffer cache. mostly useless as metric nowadays.
- Cached: Memory in the pagecache (diskcache) minus SwapCache.
- SwapCache: Memory that once was swapped out, is swapped back in but still also is in the swapfile (if memory is needed it doesn't need to be swapped out AGAIN because it is already in the swapfile. This saves I/O).
VM Statistics
- Active:Memory that has been used more recently and usually not reclaimed unless absolutely necessary.
- Inactdirty: Dirty means "might need writing to disk or swap." Takes more work to free. Examples might be files that have not been written to yet. They aren't written to memory too soon in order to keep the I/O down. For instance, if you're writing logs, it might be better to wait until you have a complete log ready before sending it to disk.
- Inactclean: Assumed to be easily freeable. The kernel will try to keep some clean stuff around always to have a bit of breathing room.
- Inacttarget: Just a goal metric the kernel uses for making sure there are enough inactive pages around. When exceeded, the kernel will not do work to move pages from active to inactive. A page can also get inactive in a few other ways, e.g. if you do a long sequential I/O, the kernel assumes you're not going to use that memory and makes it inactive preventively. So you can get more inactive pages than the target because the kernel marks some cache as "more likely to be never used" and lets it cheat in the "last used" order.
- VmallocTotal: total size of vmalloc memory area.
- VmallocUsed: amount of vmalloc area which is used.
- VmallocChunk: largest contigious block of vmalloc area which is free.
Memory Statistics
- HighTotal: is the total amount of memory in the high region. Highmem is all memory above (approx) 860MB of physical RAM. Kernel uses indirect tricks to access the high memory region. Data cache can go in this memory region.
- LowTotal: The total amount of non-highmem memory.
- LowFree: The amount of free memory of the low memory region. This is the memory the kernel can address directly. All kernel data structures need to go into low memory.
- SwapTotal: Total amount of physical swap memory.
- SwapFree: Total amount of swap memory free.
- CommittedAS: An estimate of how much RAM you would need to make a 99.99% guarantee that there never is OOM (out of memory) for this workload. Normally the kernel will overcommit memory. That means, say you do a 1GB malloc, nothing happens, really. Only when you start USING that malloc memory you will get real memory on demand, and just as much as you use. So you sort of take a mortgage and hope the bank doesn't go bust. Other cases might include when you mmap a file that's shared only when you write to it and you get a private copy of that data. While it normally is shared between processes. The CommittedAS is a guesstimate of how much RAM/swap you would need worst-case.
vmstat
$ vmstat -s -Sm
8273 m total memory
7611 m used memory
4251 m active memory
2830 m inactive memory
662 m free memory
314 m buffer memory
3652 m swap cache
4095 m total swap
0 m used swap
4094 m free swap
327240 non-nice user cpu ticks
2369 nice user cpu ticks
86623 system cpu ticks
13634125 idle cpu ticks
242936 IO-wait cpu ticks
0 IRQ cpu ticks
293 softirq cpu ticks
0 stolen cpu ticks
11687554 pages paged in
6587510 pages paged out
0 pages swapped in
197 pages swapped out
11925061 interrupts
103449780 CPU context switches
1426385162 boot time
8619 forks
RAM Information
$ sudo dmidecode -t 17 # dmidecode 2.12 # SMBIOS entry point at 0x000f0000 SMBIOS 2.7 present. Handle 0x0048, DMI type 17, 34 bytes Memory Device Array Handle: 0x0047 Error Information Handle: Not Provided Total Width: Unknown Data Width: Unknown Size: No Module Installed Form Factor: DIMM Set: None Locator: DIMM B Bank Locator: Not Specified Type: Unknown Type Detail: None Speed: Unknown Manufacturer: [Empty] Serial Number: [Empty] Asset Tag: 00000000 Part Number: [Empty] Rank: Unknown Configured Clock Speed: Unknown Handle 0x0049, DMI type 17, 34 bytes Memory Device Array Handle: 0x0047 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: SODIMM Set: None Locator: DIMM C Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Speed: 1600 MHz Manufacturer: Samsung Serial Number: D0E0BF95 Asset Tag: 03141300 Part Number: M471B5173DB0-YK0 Rank: 1 Configured Clock Speed: 1600 MHz Handle 0x004B, DMI type 17, 34 bytes Memory Device Array Handle: 0x0047 Error Information Handle: Not Provided Total Width: Unknown Data Width: Unknown Size: No Module Installed Form Factor: DIMM Set: None Locator: DIMM A Bank Locator: Not Specified Type: Unknown Type Detail: None Speed: Unknown Manufacturer: [Empty] Serial Number: [Empty] Asset Tag: 00000000 Part Number: [Empty] Rank: Unknown Configured Clock Speed: Unknown Handle 0x004C, DMI type 17, 34 bytes Memory Device Array Handle: 0x0047 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: SODIMM Set: None Locator: DIMM D Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Speed: 1600 MHz Manufacturer: Samsung Serial Number: CFE0BF95 Asset Tag: 03141300 Part Number: M471B5173DB0-YK0 Rank: 1 Configured Clock Speed: 1600 MHz