我正在调试我们正在耗尽内核低内存的问题,我正在尝试确定谁正在使用导致问题的内核低内存.
以下是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(lowtotal-lowfree-slab,577216-9772-304260 = 263184mb)的低内存.看起来lowmem用于板坯以外的用途.一旦我弄清楚除了slab之外还有谁在使用lowmem,我可以尝试找出内存在哪里获取列表.
基本上,我的目标是试图找到谁正在使用570mb的lowmem.
我查看了解释meminfo和slabinfo详细信息的不同邮件组,但我还没有看到lowmem使用细节的详细信息.
谢谢
Sreenivas
解决方法
这并没有直接回答你的问题,但我确实发现了Red Hat最近发布的关于/ proc / meminfo的信息,这可能会有所帮助.页面在这里,标题为:
Tips & Tricks
Featured Article: /proc/meminfo Explained.
Featured Article: /proc/meminfo Explained.
摘抄
LowFree: The amount of free memory of the low memory region. This is the memory the kernel can address directly. All kernel datastructures need to go into low memory.
所以我想知道是否有一些数据结构消耗了你要问的263MB,你的数学似乎表明情况可能就是这样.
此外,我在U& L网站上写了一个关于How much RAM does the kernel use?的页面,专门展示了一些工具,例如slabtop以及一些额外的/ proc结构,可以帮助你找到问题的根源.