当前位置:首页 > 内存 > 正文

linux释放共享内存

  • 内存
  • 2024-08-26 00:41:44
  • 3980

一、深入理解Linux内存管理(十)meminfo详解深入理解Linux内存管理第十部分重点是meminfo文件的详细解读。meminfo是了解系统内存使用情况的关键文件。它包含有关丰富内存状态的信息。我们通过一个128M内存的虚拟机的meminfo内容来探索一下。
首先,MemTotal,即_totalram_pages值,会根据具体场景进行调整,包括memblock释放和预留空间释放。MemTotal主要由两部分组成:memblock释放的21345个物理页和保留空间的2138页,总计23483页(93932kB)。
MemFree是所有zone中空闲页面的总和,包括基于percpu的内存和zone空间页帧,总共43700kB。MemAvailable是一个估计值,反映了系统可能的可用内存,但不包括LRU中的匿名页,原因尚不清楚。
Buffers和Cached用于缓存硬盘和内存文件数据SwapCached是匿名页面与交换区交互的缓冲区。LRU管理已请求但未使用的页帧,而Mlocked则对内核锁定的内存进行计数。SwapTotal和SwapFree是有关交换空间的参数。
Meminfo还显示了AnonPages、Mapped、Shmem、KReclaimable等字段,分别对应用户进程使用的匿名页面、文件页面、共享内存和内核可回收内存。还包括与大页面相关的信息,例如HugePages_Total、HugePages_Free等。
最后,MemTotal的构成可以概括为:剩余伙伴系统(MemFree)、内核态使用量(如Slab、内核堆栈和vmalloc)和用户态使用量(包括进程内存、缓存和大页面)。了解了meminfo的这些细节之后,就可以回答第二个问题了,也就是MemTotal的构成。