小编iva*_*van的帖子

重新启动后报告的内存使用量过高 (3 GB)

简要问题描述:英特尔酷睿 2 Q6600 上的 64 位 Gentoo 报告在重启后大约 8GB 总内存中使用了 3GB。该内存既不被任何进程占用,也不被缓冲区/缓存使用。

上下文:emerge在尝试从源代码构建八度音程时,OOM 终止了进程后,我首先注意到了这种行为。当系统再次响应时,仍有大约 3GB 的据称已用内存未被任何进程使用。(请注意,我不能肯定地说这真的是在开始时 - 也许我之前没有注意到。)

我尝试重新启动,因为我不熟悉 OOM 可能的问题,但据报道再次使用了内存。

然后我尝试了 Memcheck86+,它在 3246.3MB 上报告了一个“失败地址”错误(测试重复了 5 次)。我降低了 RAM 频率,错误消失了(测试重复 3 次)。

然而,在我的 Gentoo 上,3GB 一直被报告为已使用,没有明显的解释(请参阅下面的诊断报告)。

我还尝试了一个实时发行版(Parted Magic),它显然表现正常(启动后大约有数百个已用内存)。

关于可能的原因甚至解决方案的任何建议?

编辑: 我现在能够克服这个问题,但仍然无法解释。我描述了我到目前为止跟踪的内容:

  • 在单用户模式下启动时不使用 3GB 内存。
  • 启动iptables结果为 3GB 使用量,而 dmesg 报告:

    nf_conntrack:回退到 vmalloc

  • 后续停止iptables不会恢复进程,内存仍然使用。

然后我更改了内核配置,使其nf_conntrack不再是内置的,而是作为模块加载的。重新iptables启动后,在没有falling back to vmalloc消息的情况下启动,也不会消耗 3GB。

我不知道,这怎么解释。也许某些内核开发人员可以帮助解释,究竟是什么导致了这种行为?

相关报道:

在此处输入图片说明 在此处输入图片说明

linux memory gentoo

5
推荐指数
1
解决办法
7588
查看次数

标签 统计

gentoo ×1

linux ×1

memory ×1