如何诊断凶手杀人过程的原因

我有一个运行CentOS和www / mail / db的小型虚拟专用服务器,最近发生了一些事件,web服务器和ssh都没有响应。

看着日志,我看到凶手杀死了这些进程,可能是因为内存不足和交换。

任何人都可以给我一些关于如何诊断可能导致最近事件的指示吗? 是否有可能是第一个死亡的进程? 我应该在哪里看?

不,algorithm不是那么简单。 您可以在以下位置find更多信息

http://linux-mm.org/OOM_Killer

如果你想跟踪内存使用情况,我build议运行一个命令,如:

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head 

它会给你一个使用最多内存的进程列表(可能导致OOM的情况)。 删除| head 如果你想要检查所有的过程,请首先。

如果你把它放在你的cron上,每隔5分钟重复一遍,并保存到一个文件中。 保持至less几天,以便您可以查看以后发生的事情。

对于像ssh这样的重要服务,我build议在这种情况下使用monit来自动重启它们。 如果您没有远程控制台,可能会导致无法访问机器。

祝你好运,
JoãoMiguel Neves

最近我很难过,因为杀手st st的过程并不一定是那些已经出错的过程。 在尝试诊断时,我了解了我现在最喜欢的工具之一。

这个工具就像是一个类固醇的顶部。 在预先设定的时间间隔内,它会剖析系统信息。 然后你可以回放看看发生了什么。 它突出显示了80%+蓝色和90%+红色的过程。 最有用的视图是在最后一段时间内分配了多less内存的内存使用情况表。 这是对我最有帮助的那个。

神奇的工具 – 不能说够了。

在性能监视器之上

这篇关于驯服oom-kille r的文章看起来特别有用。 似乎你可以设置优先级,以防止杀手杀死某些进程(sshd将是一个VPS的好开始!)