Linux内核lowmem使用情况

我正在debugging一个问题,我们正在耗尽内核内存不足,我正在尝试确定谁正在使用内核的低内存,这有助于解决问题。

以下是meminfo输出:

MemTotal: 16622556 kB MemFree: 11429420 kB Buffers: 146268 kB Cached: 2898228 kB RAMCached: 1213120 kB Allowed: 4155639 Pages Free: 2857355 Pages Available: 3317413 Pages SwapCached: 0 kB Active: 3004716 kB Inactive: 1694188 kB HighTotal: 16045340 kB HighFree: 11419648 kB LowTotal: 577216 kB LowFree: 9772 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 8 kB Writeback: 0 kB Mapped: 1871960 kB Slab: 304260 kB CommitLimit: 8311276 kB Committed_AS: 5438236 kB PageTables: 20956 kB VmallocTotal: 311288 kB VmallocUsed: 253900 kB VmallocChunk: 48892 kB 

我在上面的输出中查看了以下字段:

 LowTotal: 577216 kB LowFree: 9772 kB Slab: 304260 kB 

如果我在/ proc / slabinfo中加上内存分配,与上面提到的slab内容(304kb)匹配。

我查看了内核源代码,我发现lowfree被计算为(totalfree-highfree),它与上表中的匹配。

我想知道剩下的263mb(low-total-lowfree-slab,577216-9772-304260 = 263184mb)低内存在哪里使用。 看起来lowmem用于slab以外的目的。 一旦我找出其他人正在使用lowmem而不是slab,我可以尝试找出内存正在获取列表的位置。

基本上,我的目标是试图找出谁正在使用lowmem的570MB。

我查看了解释meminfo和slabinfo详细信息的不同邮件组,但我没有看到lowmem使用细节的详细信息。

感谢Sreenivas

这并不能直接回答你的问题,但是我find了关于Red Hat在不久前推出的/proc/meminfo信息,这可能会有所帮助。 页面在这里,标题为: 提示和诀窍特色文章:/ proc / meminfo解释 。

摘抄

LowFree:低内存区域的可用内存量。 这是内核可以直接寻址的内存。 所有内核数据结构都需要进入低内存。

所以我想知道是否有一些数据结构正在消耗你所问的263MB,你的math似乎表明这可能是这样的。

另外我在U&L网站上写了一个关于内核使用多lessRAM的页面? ,特别显示了几个工具,如slabtop以及一些额外的/proc结构,可能会帮助你达到你的问题的底部。