Linux 中 /proc/meminfo 的含义

做嵌入式开发对内存泄露很敏感,而对泄露的位置更加关注。本文记录一下从网上搜集的/proc/meminfo各参数的含义。还不完整,待补完。

本文地址:https://segmentfault.com/a/1190000007114036

Reference

关于/proc/meminfo的理解
linux/Documentation/filesystems/proc.txt

《Linux 中 /proc/meminfo 的含义》

说明

以下项目并不是每一个 Linux 系统上都有的,根据你的 Linux 设计和版本,可能多出或者少了某些项。
参考资料中的第二项是最新的 Linux 文档

项目名说明
MemTotal所有可用的 RAM 大小,物理内存减去预留位和内核使用
MemFreeLowFree + HighFree
Buffers用来给块设备做缓存的大小(文件系统的 metadata, tracking in-flight pages)
Cached文件的缓冲区大小
SwapCached已经被交换出来的内存。与 I/O 相关
Active经常(最近)被使用的内存
Inactive最近不常使用的内存。这很容易被系统移做他用
Active(anon)?
Inactive(anon)?
Unevictable?
Mlocked?
HighTotal所有在 860MB(0x35C00000)以上的空间。主要是用户空间程序或缓存页
LowTotal860MB 以下的空间。如果该空间用完了,系统可能会异常
HighFree860MB 以上空间的可用空间
LowFree860MB 以下空间的可用空间
SwapTotal交换空间总和
SwapFreeRAM 暂存在 Swap 中的大小
Dirty等待写回的数据大小
WriteBack正在写回的数据大小
Mapped映射文件大小
AnonPages映射到用户空间的非文件页表大小
Shmem?
Slab内核数据结构缓存
SReclaimableSlab 的一部分。当内存压力大时,可以 reclaim
SUnreclaim不可以 reclaim 的 Slab
KernelStack?
PageTables最底层的页表的内存空间
NFS_Unstable已经发给 NFS 服务器、但是尚未被确认(committed)写入到稳定存储的页表
Bonce?
WritebackTmpMemory used by FUSE for temporary writeback buffers
CommitLimitCommitLimit = (‘vm.overcommit_ratio’ * Physical RAM)
Committed_ASThe amount of memory presently allocated on the system.(系统中目前分配了的内存?)
VmallocTotalvmalloc 内存大小
VmallocUsed已被使用的虚拟内存大小
VmallocChunk在 vmalloc 区域中可用的最大的连续内存块的大小
    原文作者:amc
    原文地址: https://segmentfault.com/a/1190000007114036
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞