Provided by: manpages_6.7-2_all bug

NAME

       /proc/meminfo - memory usage

DESCRIPTION

       /proc/meminfo
              This  file  reports  statistics about memory usage on the system.  It is used by free(1) to report
              the amount of free and used memory (both physical and swap) on the system as well  as  the  shared
              memory  and  buffers  used  by  the  kernel.   Each line of the file consists of a parameter name,
              followed by a colon, the value of the parameter, and an option unit of measurement  (e.g.,  "kB").
              The  list  below describes the parameter names and the format specifier required to read the field
              value.  Except as noted below, all of the fields have been present since  at  least  Linux  2.6.0.
              Some  fields  are  displayed  only  if  the  kernel  was  configured  with  various options; those
              dependencies are noted in the list.

              MemTotal %lu
                     Total usable RAM (i.e., physical RAM minus a few reserved bits and the kernel binary code).

              MemFree %lu
                     The sum of LowFree+HighFree.

              MemAvailable %lu (since Linux 3.14)
                     An estimate of how  much  memory  is  available  for  starting  new  applications,  without
                     swapping.

              Buffers %lu
                     Relatively  temporary storage for raw disk blocks that shouldn't get tremendously large (20
                     MB or so).

              Cached %lu
                     In-memory cache for files read from the disk (the page cache).  Doesn't include SwapCached.

              SwapCached %lu
                     Memory that once was swapped out, is swapped back in but still also is in  the  swap  file.
                     (If  memory  pressure  is high, these pages don't need to be swapped out again because they
                     are already in the swap file.  This saves I/O.)

              Active %lu
                     Memory that has been used  more  recently  and  usually  not  reclaimed  unless  absolutely
                     necessary.

              Inactive %lu
                     Memory  which  has  been less recently used.  It is more eligible to be reclaimed for other
                     purposes.

              Active(anon) %lu (since Linux 2.6.28)
                     [To be documented.]

              Inactive(anon) %lu (since Linux 2.6.28)
                     [To be documented.]

              Active(file) %lu (since Linux 2.6.28)
                     [To be documented.]

              Inactive(file) %lu (since Linux 2.6.28)
                     [To be documented.]

              Unevictable %lu (since Linux 2.6.28)
                     (From  Linux  2.6.28  to  Linux  2.6.30,  CONFIG_UNEVICTABLE_LRU  was  required.)   [To  be
                     documented.]

              Mlocked %lu (since Linux 2.6.28)
                     (From  Linux  2.6.28  to  Linux  2.6.30,  CONFIG_UNEVICTABLE_LRU  was  required.)   [To  be
                     documented.]

              HighTotal %lu
                     (Starting with Linux  2.6.19,  CONFIG_HIGHMEM  is  required.)   Total  amount  of  highmem.
                     Highmem is all memory above ~860 MB of physical memory.  Highmem areas are for use by user-
                     space  programs,  or for the page cache.  The kernel must use tricks to access this memory,
                     making it slower to access than lowmem.

              HighFree %lu
                     (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.)  Amount of free highmem.

              LowTotal %lu
                     (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.)  Total amount of lowmem.   Lowmem
                     is  memory  which  can  be used for everything that highmem can be used for, but it is also
                     available for the kernel's use for its own data structures.  Among many other things, it is
                     where everything from Slab is allocated.  Bad things happen when you're out of lowmem.

              LowFree %lu
                     (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.)  Amount of free lowmem.

              MmapCopy %lu (since Linux 2.6.29)
                     (CONFIG_MMU is required.)  [To be documented.]

              SwapTotal %lu
                     Total amount of swap space available.

              SwapFree %lu
                     Amount of swap space that is currently unused.

              Dirty %lu
                     Memory which is waiting to get written back to the disk.

              Writeback %lu
                     Memory which is actively being written back to the disk.

              AnonPages %lu (since Linux 2.6.18)
                     Non-file backed pages mapped into user-space page tables.

              Mapped %lu
                     Files which have been mapped into memory (with mmap(2)), such as libraries.

              Shmem %lu (since Linux 2.6.32)
                     Amount of memory consumed in tmpfs(5) filesystems.

              KReclaimable %lu (since Linux 4.20)
                     Kernel allocations that the kernel will attempt to reclaim under memory pressure.  Includes
                     SReclaimable (below), and other direct allocations with a shrinker.

              Slab %lu
                     In-kernel data structures cache.  (See slabinfo(5).)

              SReclaimable %lu (since Linux 2.6.19)
                     Part of Slab, that might be reclaimed, such as caches.

              SUnreclaim %lu (since Linux 2.6.19)
                     Part of Slab, that cannot be reclaimed on memory pressure.

              KernelStack %lu (since Linux 2.6.32)
                     Amount of memory allocated to kernel stacks.

              PageTables %lu (since Linux 2.6.18)
                     Amount of memory dedicated to the lowest level of page tables.

              Quicklists %lu (since Linux 2.6.27)
                     (CONFIG_QUICKLIST is required.)  [To be documented.]

              NFS_Unstable %lu (since Linux 2.6.18)
                     NFS pages sent to the server, but not yet committed to stable storage.

              Bounce %lu (since Linux 2.6.18)
                     Memory used for block device "bounce buffers".

              WritebackTmp %lu (since Linux 2.6.26)
                     Memory used by FUSE for temporary writeback buffers.

              CommitLimit %lu (since Linux 2.6.10)
                     This is the total amount of memory currently available  to  be  allocated  on  the  system,
                     expressed  in  kilobytes.  This limit is adhered to only if strict overcommit accounting is
                     enabled (mode 2 in /proc/sys/vm/overcommit_memory).  The limit is calculated  according  to
                     the  formula  described under /proc/sys/vm/overcommit_memory.  For further details, see the
                     kernel source file Documentation/vm/overcommit-accounting.rst.

              Committed_AS %lu
                     The amount of memory presently allocated on the system.  The committed memory is a  sum  of
                     all  of the memory which has been allocated by processes, even if it has not been "used" by
                     them as of yet.  A process which allocates 1 GB of memory (using malloc(3) or similar), but
                     touches only 300 MB of that memory will show up as using only 300 MB of memory even  if  it
                     has the address space allocated for the entire 1 GB.

                     This  1 GB is memory which has been "committed" to by the VM and can be used at any time by
                     the allocating application.  With strict overcommit  enabled  on  the  system  (mode  2  in
                     /proc/sys/vm/overcommit_memory), allocations which would exceed the CommitLimit will not be
                     permitted.   This  is  useful if one needs to guarantee that processes will not fail due to
                     lack of memory once that memory has been successfully allocated.

              VmallocTotal %lu
                     Total size of vmalloc memory area.

              VmallocUsed %lu
                     Amount of vmalloc area which is used.  Since Linux 4.4, this field is no longer calculated,
                     and is hard coded as 0.  See /proc/vmallocinfo.

              VmallocChunk %lu
                     Largest contiguous block of vmalloc area which is free.  Since Linux 4.4, this field is  no
                     longer calculated and is hard coded as 0.  See /proc/vmallocinfo.

              HardwareCorrupted %lu (since Linux 2.6.32)
                     (CONFIG_MEMORY_FAILURE is required.)  [To be documented.]

              LazyFree %lu (since Linux 4.12)
                     Shows the amount of memory marked by madvise(2) MADV_FREE.

              AnonHugePages %lu (since Linux 2.6.38)
                     (CONFIG_TRANSPARENT_HUGEPAGE  is  required.)   Non-file backed huge pages mapped into user-
                     space page tables.

              ShmemHugePages %lu (since Linux 4.8)
                     (CONFIG_TRANSPARENT_HUGEPAGE is required.)   Memory  used  by  shared  memory  (shmem)  and
                     tmpfs(5) allocated with huge pages.

              ShmemPmdMapped %lu (since Linux 4.8)
                     (CONFIG_TRANSPARENT_HUGEPAGE  is required.)  Shared memory mapped into user space with huge
                     pages.

              CmaTotal %lu (since Linux 3.1)
                     Total CMA (Contiguous Memory Allocator) pages.  (CONFIG_CMA is required.)

              CmaFree %lu (since Linux 3.1)
                     Free CMA (Contiguous Memory Allocator) pages.  (CONFIG_CMA is required.)

              HugePages_Total %lu
                     (CONFIG_HUGETLB_PAGE is required.)  The size of the pool of huge pages.

              HugePages_Free %lu
                     (CONFIG_HUGETLB_PAGE is required.)  The number of huge pages in the pool that are  not  yet
                     allocated.

              HugePages_Rsvd %lu (since Linux 2.6.17)
                     (CONFIG_HUGETLB_PAGE is required.)  This is the number of huge pages for which a commitment
                     to  allocate  from  the  pool  has  been  made, but no allocation has yet been made.  These
                     reserved huge pages guarantee that an application will be able to allocate a huge page from
                     the pool of huge pages at fault time.

              HugePages_Surp %lu (since Linux 2.6.24)
                     (CONFIG_HUGETLB_PAGE is required.)  This is the number of huge pages in the pool above  the
                     value in /proc/sys/vm/nr_hugepages.  The maximum number of surplus huge pages is controlled
                     by /proc/sys/vm/nr_overcommit_hugepages.

              Hugepagesize %lu
                     (CONFIG_HUGETLB_PAGE is required.)  The size of huge pages.

              DirectMap4k %lu (since Linux 2.6.27)
                     Number of bytes of RAM linearly mapped by kernel in 4 kB pages.  (x86.)

              DirectMap4M %lu (since Linux 2.6.27)
                     Number of bytes of RAM linearly mapped by kernel in 4 MB pages.  (x86 with CONFIG_X86_64 or
                     CONFIG_X86_PAE enabled.)

              DirectMap2M %lu (since Linux 2.6.27)
                     Number  of  bytes  of  RAM  linearly  mapped  by  kernel  in 2 MB pages.  (x86 with neither
                     CONFIG_X86_64 nor CONFIG_X86_PAE enabled.)

              DirectMap1G %lu (since Linux 2.6.27)
                     (x86 with CONFIG_X86_64 and CONFIG_X86_DIRECT_GBPAGES enabled.)

SEE ALSO

       proc(5)

Linux man-pages 6.7                                2023-08-15                                    proc_meminfo(5)