当前位置:   article > 正文

/proc/meminfo 解析_/proc/meminfo详解

/proc/meminfo详解

 


详解:

  • MemTotal: 所有内存(RAM)大小,减去预留空间和内核的大小。
  • MemFree: 完全没有用到的物理内存,lowFree+highFree。
  • MemAvailable: MemFree只是尚未分配的内存,并不是所有可用的内存。有些已经分配掉的内存是可以回收再分配的。比如cache/buffer、slab都有一部分是可以回收的,这部分可回收的内存加上MemFree才是系统可用的内存,即MemAvailable(不精确)。
  • Buffers: 块设备所占用的缓存页。块设备(block device)所占用的特殊file-backed pages,包括:直接读写块设备,以及文件系统元数据(metadata)比如superblock使用的缓存页。
  • Cached: 表示普通文件数据所占用的缓存页。用户进程的内存页分为两种:file-backed pages(与文件对应的内存页),和anonymous pages(匿名页),比如进程的代码、映射的文件都是file-backed,而进程的堆、栈都是不与文件相对应的、就属于匿名页。file-backed pages在内存不足的时候可以直接写回对应的硬盘文件里,称为page-out,不需要用到交换区(swap);而anonymous pages在内存不足时就只能写到硬盘上的交换区(swap)里,称为swap-out
  • SwapCached: swap cache中包含的是被确定要swapping换页,但是尚未写入物理交换区的匿名内存页。那些匿名内存页,比如用户进程malloc申请的内存页是没有关联任何文件的,如果发生swapping换页,这类内存会被写入到交换区。
  • LRU:LRU是一种内存页回收算法,Least Recently Used,最近最少使用。LRU认为,在最近时间段内被访问的数据在以后被再次访问的概率,要高于最近一直没被访问的页面。于是近期未被访问到的页面就成为了页面回收的第一选择。Linux kernel会记录每个页面的近期访问次数,然后设计了两种LRU list: active list 和 inactive list, 刚访问过的页面放进active list,长时间未访问过的页面放进inactive list,回收内存页时,直接找inactive list即可。另外,内核线程kswapd会周期性地把active list中符合条件的页面移到inactive list中。
  • Active: active包含active anon和active file。
  • Inactive: inactive包含inactive anon和inactive file。
  • Active(anon): anonymous pages(匿名页),用户进程的内存页分为两种:与文件关联的内存页(比如程序文件,数据文件对应的内存页)和与内存无关的内存页(比如进程的堆栈,用malloc申请的内存),前者称为file pages或mapped pages,后者称为匿名页。
  • Inactive(anon): 见上。
  • Active(file): 见上。
  • Inactive(file): 见上。
  • SwapTotal: 可用的swap空间的总的大小(swap分区在物理内存不够的情况下,把硬盘空间的一部分释放出来,以供当前程序使用)。
  • SwapFree: 当前剩余的swap的大小。
  • Dirty: 需要写入磁盘的内存页的大小。
  • Writeback: 正在被写回的内存区的大小。
  • AnonPages: 未映射页的内存的大小。Anonymous pages(匿名页)数量 + AnonHugePages(透明大页)数量。
  • Mapped: 设备和文件等映射的大小。正被用户进程关联的file-backed pages。
  • Slab: 内核数据结构slab的大小。slab是linux内核的一种内存分配器。
  • SReclaimable: 可回收的slab的大小。
  • SUnreclaim: 不可回收的slab的大小。
  • PageTables: 管理内存页页面的大小。Page Table的用途是翻译虚拟地址和物理地址,它是会动态变化的,要从MemTotal中消耗内存。
  • NFS_Unstable: 不稳定页表的大小。发给NFS server但尚未写入硬盘的缓存页。
  • VmallocTotal: Vmalloc内存区的大小.可分配的虚拟内存总计.
  • VmallocUsed: 已用Vmalloc内存区的大小
  • VmallocChunk: vmalloc区可用的连续最大快的大小.通过vmalloc可分配的虚拟地址连续的最大内存
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/160838
推荐阅读
相关标签
  

闽ICP备14008679号