在看似随机的时间间隔内,我们的服务器上的内存使用量正在增加,超过最大可用和交换,直到CPU使用率也是100%。 然后,当交换内存不足时,它开始closures进程,我们必须重新启动服务器。
当这种情况发生时,我们的网站和内部系统变得没有反应。 在这一点上,我也无法SSH进入服务器,所以我没有办法识别正在查杀它的进程。
我没有大量的服务器pipe理员的经验,但我正在寻找如何检测问题的想法。 让我知道你可能需要什么额外的信息。
可能是一个叉子炸弹tbh(即一个过程,无限分摊儿童,从而耗尽资源)。 也可能是一个内存泄漏types的问题。
识别关键stream程是关键。 尝试这个:
当您下次重新启动服务器时,请以root身份打开控制台,但使用renice将其优先级设置为-20。 一旦完成运行(优先-20的顶部),看看是什么原因造成的问题。
这个命令应该这样做:
sudo bash renice -n -20 -u root top
当事情开始寻找紧张的时候,用killall命令或杀死父母,然后杀死僵尸。
在-20你应该能够保持与ssh的主动连接,并仍然在做你的工作,与内核相同的优先级。
不要忘了查看日志(web服务器,否则在/ var / log),因为他们可以相当透露。
如果您发现问题,请让我们知道它是什么,如果您需要进一步的帮助和帮助。
祝你好运。
请参阅renice手册页和顶级手册页。
安装(并仔细阅读文档!) sysstat ,configuration它,并分析收集的数据后,这样的事件。
检查安全策略(SELinux active, ulimit为各种用户,…)。 检查一切是最新的(一个故障的程序肯定会造成这种情况)。
检查任何自制系统可能的循环或其他资源耗尽。 真正的所有日志,即使是数据库等。