1

我最近遇到了 oom-killer 在一段时间后开始杀死进程的问题。我可以看到内存被消耗了,但是当我到达服务器时,已经不清楚是什么消耗了它。是否有一个很好的非显而易见的地方可以获取有关 oom-killer 的更多信息?例如,激活时有关进程的详细信息、有关已终止进程的详细信息以及选择的原因?

我正在寻找一个特定的地方来查找此信息,收集它的特定工具或一些配置以改进 oom-killer 报告。我不是在寻找有关 oom-killer 的通用信息。/var/messages 默认情况下将仅包含有关空闲/已分配内存的详细报告,但不包含分配给它的特定进程。

4

3 回答 3

2

您可以检查消息日志文件以查看哪个进程被杀死以及一些相关信息。至于原因:

...清算的理想候选者是最近启动的非特权进程,它与它的子进程一起使用大量内存,已经很好,并且不执行原始 I/O。类似于 nohup 的并行内核构建(这不是一个糟糕的选择,因为所有结果都保存到磁盘上,并且在“make”终止时丢失的工作很少)。

这里

您可以定义一些进程对杀手免疫,调整 swappiness 参数以防它太低(这使杀手触发器高兴)并检查此处列出的内容

于 2008-09-23T09:21:13.973 回答
1

通常,您应该在 /var/log/messages 中收到一条消息,其中包含与 oom-killer 杀死的进程相关的大量详细信息。

于 2008-09-23T09:17:50.407 回答
1

这不是您问题的确切答案,但malloc(3)Linux 上的手册页提供了一些有关如何关闭内存过度使用的信息

echo 2 > /proc/sys/vm/overcommit_memory
于 2008-09-23T09:38:22.637 回答