/proc/meminfo 文件详解
快猫运营团队
2024-12-20 18:42:09
Linux 系统的监控,很多信息都是取自 /proc 目录,比如 CPU 的信息、内存的信息、磁盘的情况、IO 的情况、网卡的流量,都是取自 /proc 目录,其中内存信息取自 /proc/meminfo,这个文件字段较多,很多新手不清楚每个字段的含义,本文做一个中文对应关系。
- MemTotal: 系统总内存的大小(单位:kB)。
- MemFree: 当前可用的空闲内存的大小(单位:kB)。
- MemAvailable: 估算的可以被新启动的应用程序使用的内存量(单位:kB),比
MemFree
更加准确反映实际可用内存。 - Buffers: 用作缓存页缓冲区的内存大小(单位:kB)。
- Cached: 用作页缓存的内存大小(单位:kB),用于存放已打开文件的数据。
- SwapCached: 已经被交换出来但仍然在交换缓存中的内存大小(单位:kB),如果需要,可以很快地被换回内存中。
- Active: 最近使用过的内存大小(单位:kB)。
- Inactive: 最近未使用的内存大小(单位:kB)。
- Active(anon): 最近使用的匿名内存大小(单位:kB),不包括文件页。
- Inactive(anon): 最近未使用的匿名内存大小(单位:kB),不包括文件页。
- Active(file): 最近使用的文件页内存大小(单位:kB)。
- Inactive(file): 最近未使用的文件页内存大小(单位:kB)。
- Unevictable: 无法被换出的内存大小(单位:kB)。
- Mlocked: 被
mlock
系统调用锁定的内存大小(单位:kB)。 - SwapTotal: 交换空间的总大小(单位:kB)。
- SwapFree: 当前可用的空闲交换空间大小(单位:kB)。
- Dirty: 等待被写回到磁盘上的脏页内存大小(单位:kB)。
- Writeback: 正在被写回到磁盘上的内存大小(单位:kB)。
- AnonPages: 不属于任何文件的匿名内存页大小(单位:kB)。
- Mapped: 已被映射到用户空间的内存大小(单位:kB)。
- Shmem: 用于共享内存的总大小(单位:kB)。
- KReclaimable: 可回收的内核内存大小(单位:kB)。
- Slab: 内核数据结构缓存的总大小,可以分为
SReclaimable
和SUnreclaim
。- SReclaimable: 可回收的 slab 内存大小(单位:kB)。
- SUnreclaim: 不可回收的 slab 内存大小(单位:kB)。
- KernelStack: 内核堆栈的内存大小(单位:kB)。
- PageTables: 用于页表的内存大小(单位:kB)。
- NFS_Unstable: 不稳定的 NFS 页面大小(单位:kB)。
- Bounce: 用于块设备的临时缓冲区内存大小(单位:kB)。
- WritebackTmp: 临时用来写回文件系统的内存大小(单位:kB)。
- CommitLimit: 系统内存承诺的上限(单位:kB)。
- Committed_AS: 已经承诺分配的内存总大小(单位:kB)。
- VmallocTotal: 虚拟内存的总大小(单位:kB)。
- VmallocUsed: 已使用的虚拟内存大小(单位:kB)。
- VmallocChunk: 最大的连续虚拟内存块大小(单位:kB)。
- Percpu: 每个 CPU 的内存大小(单位:kB)。
- HardwareCorrupted: 硬件损坏的内存大小(单位:kB)。
- AnonHugePages: 巨大页的匿名内存大小(单位:kB)。
- ShmemHugePages: 共享内存的巨大页大小(单位:kB)。
- ShmemPmdMapped: 使用 PMD 映射的共享内存大小(单位:kB)。
- HugePages_Total: 巨大页的总数。
- HugePages_Free: 空闲的巨大页数。
- HugePages_Rsvd: 保留的巨大页数。
- HugePages_Surp: 额外的巨大页数。
- Hugepagesize: 每个巨大页的大小(单位:kB)。
- Hugetlb: 用于巨大页的内存总大小(单位:kB)。
- DirectMap4k: 4k 映射的内存大小(单位:kB)。
- DirectMap2M: 2M 映射的内存大小(单位:kB)。
- DirectMap1G: 1G 映射的内存大小(单位:kB)。
每个字段都为我们提供了对系统内存使用情况的详细洞察,有助于诊断和优化系统性能。