Linux 下meminfo结点解析

通过cat /proc/meminfo可以看到内存的使用情况

重点域解析

MemTotal:伙伴系统总内存大小(totalram_pages),这里总内存不包含预留内存(memblock_reserve),以及在调用free_all_bootmem释放内存到伙伴系统之前,通过memblock_alloc分配的内存,如果想回到伙伴系统,需要调用memblock_free_late

MemFree:伙伴系统中剩余内存大小,通过NR_FREE_PAGES获取

MemAvailable:系统可以用内存大小

MemAvailable = memfree + pagecache/2 + SLAB_RECLAIMABLE/2 - wmark_low 也就是算上了page cache和slab 可回收部分,然后减去最低水位值,MemAvailable 是保证userspace thread不会发送内存回收的最高可用内存

Buffers:块设备驱动用于写缓存(buffer)的内存大小

Cached: page cache + shmem cache + swap cache - free mem

SwapCached:匿名内存swapcache大小

Active : active file + active anon mem

inactive :inactive file + inactive anon mem 

Unevictable :不可以收回内存大小,一般userspace调用mlock以后,内存不可以回收

Mlocked:处于锁定状态内存.

Dirty :脏页状态

AnonPages:匿名页面总大小

Mapped:处于映射状态文件页面大小

Shmem:shmem使用内存大小

Slab:slab使用内存 = SReclaimable + SUnreclaim

SReclaimable: slab可回收内存大小

SUnreclaim:不可回收大小,如果这个值很大,则可认为有内存泄露

KernelStack:系统所有进程的内核堆栈大小

PageTables:系统所有进程页表大小

VmallocTotal: vmalloc虚拟地址空间大小

CmaTotal:cma内存总大小

CmaFree:剩余CMA内存大小

猜你喜欢

转载自blog.csdn.net/bin_linux96/article/details/84988560
今日推荐