在查看linux内存使用情况时,通常需要用到命令(cat /proc/meminfo)查看内核数据结构,有些字段大致知道什么意思,时间久了也容易忘记,故在这里详细记录一下。
[root@localhost ~]# cat /proc/meminfo
MemTotal: 932004 kB
MemFree: 567160 kB
MemAvailable: 596804 kB
Buffers: 2108 kB
Cached: 149480 kB
SwapCached: 0 kB
Active: 110300 kB
Inactive: 115516 kB
Active(anon): 74696 kB
Inactive(anon): 6928 kB
Active(file): 35604 kB
Inactive(file): 108588 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 74260 kB
Mapped: 25928 kB
Shmem: 7396 kB
Slab: 63576 kB
SReclaimable: 25804 kB
SUnreclaim: 37772 kB
KernelStack: 4736 kB
PageTables: 4444 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2563148 kB
Committed_AS: 301100 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 180428 kB
VmallocChunk: 34359310332 kB
HardwareCorrupted: 0 kB
AnonHugePages: 8192 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 73600 kB
DirectMap2M: 974848 kB
DirectMap1G: 0 kB
MemTotal:总内存
MemFree:空闲内存
MemAvailable:可用内存
Buffers:给文件的缓冲大小
Cached:高速缓冲存储器
SwapCached:被高速缓冲存储用的交换空间的大小
Active:活跃使用中的高速缓冲存储器页面文件大小
Inactive:不经常使用中的告诉缓冲存储器文件大小
active(anon):活跃的匿名内存(进程中堆上分配的内存,是用malloc分配的内存)
Inactive(anon):不活跃的匿名内存
file内存:磁盘高速缓存的内存空间和“文件映射(将物理磁盘上的文件内容与用户进程的逻辑地址直接关联)”的内存空间,其中的内容与物理磁盘上的文件相对应
Active(file):活跃的file内存
Inactive(file):不活跃的file内存
Unevictable:不能被释放的内存页
Mlocked:mlock()系统调用锁定的内存大小
SwapTotal:交换空间总大小
SwapFree:空闲交换空间
Dirty:等待被写回到磁盘的大小
Writeback:正在被写回的大小
AnonPages:未映射页的大小
Mapped:设备和文件映射大小
Shmem:已经被分配的共享内存大小
Slab:内核数据结构缓存大小
SReclaimable:可收回slab的大小
SUnreclaim:不可回收的slab的大小
KernelStack:kernel消耗的内存
PageTables:管理内存分页的索引表的大小
NFS_Unstable:不稳定页表的大小
Bounce:在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritevackTmp:FUSE用于临时写回缓冲区的内存
CommitLimit:系统实际可分配内存总量
Committed_AS:统当前已分配的内存总量
VmallocTotal:虚拟内存大小
VmallocUsed:已经被使用的虚拟内存大小
VmallocChunk:vmalloc 可分配的最大的逻辑连续的内存大小
HardwareCorrupted:删除掉的内存页的总大小(当系统检测到内存的硬件故障时)
HugePages : Linux 操作系统的一个内核特性,让操作系统可以支持现代硬件架构的大页面容量功能
AnonHugePages:匿名 HugePages 数量
CmaTotal:总的连续可用内存
CmaFree:空闲的连续内存
HugePages_Total:预留HugePages的总个数
HugePages_Free:池中尚未分配的 HugePages 数量
HugePages_Rsvd:表示池中已经被应用程序分配但尚未使用的 HugePages 数量
HugePages_Surp:这个值得意思是当开始配置了20个大页,现在修改配置为16,那么这个参数就会显示为4,一般不修改配置,这个值都是0
HugePagesize:每个大页的大小
DirectMap4k:映射TLB为4kB的内存数量
DirectMap2M:映射TLB为2M的内存数量
DirectMap1G:映射TLB为1G的内存数量
学习地址:https://blog.csdn.net/shaoyunzhe/article/details/54614077
http://www.eeworld.com.cn/mp/ymc/a52758.jspx
http://linuxperf.com/?p=142