Know about /proc/meminfo

/proc/meminfo is one of the more commonly used files in the /proc/, as it reports a large amount of valuable information about the Linux system’s memory. Here is the brief description of what each value stands for

  • MemTotal: Total usable RAM in kilobytes (i.e. physical memory minus a few reserved bytes and the kernel binary code)
  • MemFree: The amount of physical RAM left unused by the system.
  • Buffers: The amount of physical RAM used for file buffers.
  • Cached: The amount of physical RAM used as cache memory. Memory in the pagecache (diskcache) minus SwapCache.
  • SwapCache: This is the amount of Swap used as cache memory. Memory that once was swapped out, is swapped back in, but is still in the swapfile.
  • Active: The total amount of buffer or page cache memory, that is active. This part of the memory is used recently and usually not reclaimed unless absolutely necessary.
  • Inactive: The total amount of buffer or page cache memory that are free and available. This is memory that has not been recently used and can be reclaimed for other purposes by the paging algorithm.
  • HighTotal: is the total amount of memory in the high region. The HighTotal value can vary based on the type of kernel used. 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 datastructures need to go into low memory
  • SwapTotal: Total amount of physical swap memory.
  • SwapFree: Total amount of swap memory free.
  • Dirty: The total amount of memory waiting to be written back to the disk.
  • Writeback: The total amount of memory actively being written back to the disk.
  • Committed_AS: 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. This parameter represents the worst case scenario value, and also includes swap memory.
  • DirectMap: This is x86 specific, basically available direct mapped slots. This is the number of pages mapped as 4KB pages, 2MB/4MB pages, and 1GB pages if supported and used. The direct mapping covers all memory in the system up to the highest memory address.

Sample /proc/meminfo output:

vmstat : The performance monitoring command “vmstat” also gives lot of good information about the system memory. With “-s” option, vmstat displays a table of various event counters and memory statistics.