dwww Home | Manual pages | Find package

proc_meminfo(5)               File Formats Manual               proc_meminfo(5)

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  mem-
              ory  (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 spec-
              ifier  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  be-
                     cause 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 eli-
                     gible 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  ac-
                     cess 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  every-
                     thing  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 ta-
                     bles.

              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  de-
                     tails, see the kernel source  file  Documentation/vm/over-
                     commit-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  applica-
                     tion.   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.   (CON-
                     FIG_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_overcom-
                     mit_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  en-
                     abled.)

              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  en-
                     abled.)

SEE ALSO
       proc(5)

Linux man-pages 6.9.1              2024-05-02                   proc_meminfo(5)

Generated by dwww version 1.16 on Tue Dec 16 07:41:43 CET 2025.