我们的 Red Hat Enterprise 5 服务器正在自行切换,直至死机 - 需要一个计划来检测原因

我们的 Red Hat Enterprise 5 服务器正在自行切换,直至死机 - 需要一个计划来检测原因

在看似随机的时间间隔内,我们服务器上的内存使用量会超过最大可用内存量,并不断交换,直到 CPU 使用率也达到 100%。当交换内存用完时,它会开始终止进程​​,我们必须重新启动服务器。

当这种情况发生时,我们的网站和内部系统会变得无响应。此时我也无法通过 SSH 进入服务器,因此我无法识别正在终止它的进程。

我没有丰富的服务器管理经验,但我正在寻找如何检测问题的方法。请告诉我您可能需要哪些额外信息。

答案1

说实话,这可能是一个 fork-bomb(即一个进程无限地分叉子进程,从而耗尽资源)。也可能是内存泄漏类型的问题。

识别关键流程是关键。尝试以下方法:

下次重新启动服务器时,请以 root 身份打开控制台,但使用 renice 将其优先级设置为 -20。完成后,运行 (top 优先级为 -20) 并观察导致问题的原因。

这个命令应该可以做到这一点:

sudo bash
renice -n -20 -u root
top

当事情开始看起来很紧张时,请采取 killall 命令或杀死父级,然后杀死僵尸。

在 -20 时您应该能够通过 ssh 保持活动连接并仍然执行您的工作,其优先级与内核相同。

不要忘记查看日志(Web 服务器和 /var/log 中的其他日志),因为它们可以揭示很多信息。

如果您发现问题,请告诉我们问题是什么,以及您是否需要进一步的帮助和协助。

祝你好运。

参见 renice 手册页和 top 手册页。

答案2

安装(并仔细阅读文档!)sysstat,进行配置并分析此类事件发生后收集的数据。

检查现有的安全策略(ulimit针对不同用户启用 SELinux,...)。检查所有内容是否是最新的(程序故障肯定会导致这种情况)。

检查任何自制系统是否存在可能的循环或其他资源耗尽。 记录所有日志,甚至数据库等。

相关内容