Linux内存不足时,如何获取有关进程的更多信息?
时间:2020-03-06 14:35:19 来源:igfitidea点击:
最近,我遇到了一个问题,即oom-killer在一段时间后开始终止进程。我可以看到内存已被消耗,但是到我到达服务器时,还不清楚什么消耗了它。有没有一个很好的明显的地方来获得有关oom-killer的更多信息?例如。有关激活时进程的详细信息,有关终止进程的详细信息以及选择的原因?
我正在寻找一个特定的地方来查找此信息,一个特定的工具来收集此信息,或者寻找一些配置来改善oom-killer报告。我不是在寻找有关oom-killer的一般信息。默认情况下,/ var / messages仅包含有关可用内存/已分配内存的详细报告,但不包含分配给它的特定进程。
解决方案
通常,我们应该在/ var / log / messages中收到一条消息,其中包含与被oom-killer杀死的进程有关的大量详细信息。
我们可以检查消息日志文件以查看哪个进程被杀死以及一些相关信息。至于原因:
... the ideal candidate for liquidation is a recently started, non privileged process which together with it's children uses lots of memory, has been nice'd, and does no raw I/O. Something like a nohup'd parallel kernel build (which is not a bad choice since all results are saved to disk and very little work is lost when a 'make' is terminated).
从这里。
我们可以定义一些进程以使其免受杀手的侵害,在太低的情况下调整swappiness参数(这会使杀手触发满意)并检查此处列出的内容
这不是我们问题的确切答案,但是Linux上的malloc(3)
手册页包含有关如何关闭内存过量使用的一些信息。
echo 2 > /proc/sys/vm/overcommit_memory