在查看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