/proc/meminfo 解析

proc(5) - Linux manual page (man7.org)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s2-proc-meminfo

/proc/meminfo
该文件统计了系统内存的使用情况。free(1) 通过它来报告freeused memory 以及内核使用的sharedbuffers 内存使用情况。

Entity Description Requirements
MemTotal 总可用内存 (物理RAM减去一些保留位和内核二进制代码)
MemFree LowFree + HighFree
MemAvailable 不交换情况下,可用于启动新应用的可用内存。
Buffers 用于磁盘原始数据块的缓冲/临时存储,通常不大 (20 MB or so).
Cached 内存上,用于缓存从磁盘读取的文件 (the page cache)。不包含SwapCached
SwapCached 被swap out的内存被swap回来,但是仍然在swap文件内。(如果内存压力高,这些内存页将不再被swap out,因为它们已经在swap文件中。这将节省I/O.)
Active 最近使用过的内存,除非绝对必要,否则通常不会回收。
Inactive 最近使用较少的内存。它将可能被用于其他用途。
Active(anon)
Inactive(anon)
Active(file)
Inactive(file)
Unevictable Linux 2.6.28 to 2.6.30
CONFIG_UNEVICTABLE_LRU
Mlocked Linux 2.6.28 to 2.6.30
CONFIG_UNEVICTABLE_LRU
SwapTotal Swap 总和。
SwapFree 没有在使用的swap空间。
Dirty 等待写回磁盘的内存
Writeback 正在写回磁盘的内存
AnonPages 映射到用户空间页表的,没有文件的内存页
Mapped 映射到内存的文件 (通过 mmap(2)), 比如,库文件libraries。
Shmem tmpfs(5) 文件系统消费的内存。
Slab 内核中的数据结构缓存 (See slabinfo(5).)
SReclaimable Slab的一部分,可以被回收,比如 caches
SUnreclaim Slab的一部分,无法回收
KernelStack 分配给内核堆栈的内存
PageTables 专用于 lowest level 页表的内存
NFS_Unstable 发送到服务器的NFS pages,但是还没有提交到稳定存储
Bounce 用于块设备 "bounce buffers".
WritebackTmp FUSE的回写buffer内存
CommitLimit 当前系统可分配内存总量(kb表示)。需开启overcommit(/proc/sys/vm/overcommit_memory 设置为 2)。Limit值根据/proc/sys/vm/overcommit_memory计算。更多信息,参见内核源文件Documentation/vm/overcommit-accounting.rst
Committed_AS 当前系统已经分配的内存。Committed内存是所有进程分配的内存之和,即便还没有被used。 一个进程分配了1GB内存(通过 malloc(3)or类似),但是仅创建了300MB,将仅显示使用300MB内存,即使它已经拥有了整个1GB内存的地址空间。已经被committed的1GB内存可以被分配内存的应用随时使用。如果开启了严格的 overcommit (mode 2 in /proc/sys/vm/overcommit_memory),则不允许超过CommitLimit分配。如果需要保证在内存成功分配后,进程不会因内存不足而失败,则这一点非常有用。
VmallocTotal vmalloc 内存总计
VmallocUsed 使用的 vmalloc 总计。
Linux 4.4后,不再计算。参见 /proc/vmallocinfo
VmallocChunk vmalloc的最大空闲连续块。
Linux 4.4后,不再计算。参见 /proc/vmallocinfo
HardwareCorrupted CONFIG_MEMORY_FAILURE
AnonHugePages 映射到用户空间页表的 Non-file backed huge pages CONFIG_TRANSPARENT_HUGEPAGE
HugePages_Total HugePages池的总容量 CONFIG_HUGETLB_PAGE
HugePages_Free 池内还没有分配的 huge pages 的数量 CONFIG_HUGETLB_PAGE
HugePages_Rsvd 已承诺分配但尚未分配的huge pages 数量。这些保留的huge pages保证应用程序能够在出错时还能从池中可分配到huge pages。 CONFIG_HUGETLB_PAGE
HugePages_Surp 大于/proc/sys/vm/nr_hugepages设置的池内huge pages的数量。最大值受限于/proc/sys/vm/nr_overcommit_hugepages CONFIG_HUGETLB_PAGE
Hugepagesize Huge pages 的尺寸 CONFIG_HUGETLB_PAGE
DirectMap4k
DirectMap2M CONFIG_X86_64 or CONFIG_X86_PAE
DirectMap4M CONFIG_X86_64 or CONFIG_X86_PAE
DirectMap1G CONFIG_X86_64 & CONFIG_X86_DIRECT_GBPAGES
Entity Description Requirements
HighTotal (>= Linux 2.6.19) Highmem总和。Highmem是860 MB以上的所有物理内存。 Highmem用于用户空间程序,或page cache。内存访问该内存需要使用tricks,所以比访问lowmem慢。 CONFIG_HIGHMEM
HighFree (>= Linux 2.6.19) 空闲的highmem。 CONFIG_HIGHMEM
LowTotal (>= Linux 2.6.19) Lowmem总和。Lowmem包含了highmem的功能,还用于kernel存放它的数据结构。Among many other things, it is where everything from Slab is allocated. Bad things happen when you're out of lowmem. CONFIG_HIGHMEM
LowFree (>= Linux 2.6.19) 空闲的lowmem. CONFIG_HIGHMEM
MmapCopy CONFIG_MMU
KReclaimable Kernel allocations that the kernel will attempt to reclaim under memory pressure. Includes SReclaimable (below), and other direct allocations with a shrinker.
Quicklists CONFIG_QUICKLIST
LazyFree Shows the amount of memory marked by madvise(2) MADV_FREE.
ShmemHugePages Memory used by shared memory (shmem) and tmpfs(5) allocated with huge pages. CONFIG_TRANSPARENT_HUGEPAGE
ShmemPmdMapped Shared memory mapped into user space with huge pages. CONFIG_TRANSPARENT_HUGEPAGE
CmaTotal Total CMA (Contiguous Memory Allocator) pages. CONFIG_CMA
CmaFree Free CMA (Contiguous Memory Allocator) pages. ) CONFIG_CMA
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • OCI Runtime spec 运行时规范 一 概述 参考 OCI 运行时规范目的是为了标准化一个容器的配置、执...
    Xiao_Yang阅读 4,180评论 0 2
  • 何为信号 信号(signal)用于通知进程发生了某种情况。进程有以下3种处理信号的方式: 忽略信号。有些信号表示硬...
    R0lan阅读 1,428评论 0 1
  • 说明本次redis集群安装在rhel6.8 64位机器上,redis版本为3.2.8,redis的gem文件版本为...
    读或写阅读 15,264评论 3 9
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,194评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,122评论 0 4