Linux 内核低内存使用

Sre*_*eni 6 linux memory kernel

我正在调试内核内存不足的问题,我试图确定谁在使用导致问题的内核内存不足。

以下是 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
Run Code Online (Sandbox Code Playgroud)

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

LowTotal: 577216 kB
LowFree: 9772 kB
Slab: 304260 kB
Run Code Online (Sandbox Code Playgroud)

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

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

我想知道剩下的 263mb(lowtotal-lowfree-slab, 577216-9772-304260=263184mb) 的低内存在哪里使用。看起来 lowmem 用于平板以外的用途。一旦我弄清楚除了slab之外还有谁在使用lowmem,我可以尝试找出内存在哪里获得列表。

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

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

谢谢斯里尼瓦斯

slm*_*slm 1

这并不能直接回答你的问题,但我确实找到了有关/proc/meminfo红帽不久前发布的信息,这可能会有所帮助。该页面位于此处,标题为:提示与技巧专题文章:/proc/meminfo 解释

摘抄

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

所以我想知道是否有一些数据结构正在消耗您所询问的 263MB,您的数学似乎表明情况可能如此。

我还在 U&L 网站上写了一个关于内核使用多少 RAM?,特别展示了一些工具,以及slabtop一些/proc可能帮助您深入了解问题的附加结构。