我的debian服务器有时会超载(由于大量的apache进程和一个写得不好的网站)。 软件开发人员正在花时间修复这个问题,但是直到他们解决了这个问题之前,我不得不面对一个超载的服务器。
当它重载,我很难得到一个SSH连接到盒子,因为它是在这么多的负载。 如果和当我设法得到一个SSH连接,我总是能够重新启动Apache从疯狂的网站代码抢救服务器。
但是有时候我可能需要一个小时左右才能build立连接,因为我的SSH连接会超时。
任何人都可以提出一个方法,我可以保证,即使服务器承受巨大的负载,我总是可以SSH进来吗?
Renice sshd进程提高优先级。 应该在资源紧张时帮助
这个问题的理想解决scheme是启用某种带外访问方法。 最简单的可能是一个串口控制台。 您可以获得串行控制台,使您可以访问并访问服务器的串行控制台。 许多体面的托pipe公司可以在专用和可托pipe的服务器上提供这种访问。 另外,您可能会拥有像启用了IP的KVM之类的东西,或者像惠普的iLO或戴尔的DRAC一样pipe理不上。
如果您无法连接的原因是由于带宽而不是系统资源,那么您总是可以将边界防火墙的stream量整形应用于networking。 如果是系统资源问题,编写一个查找系统资源耗尽的脚本,如果说3连续运行,它会检测资源问题,然后自动重新启动Apache。
也许你可以编写一个脚本来观察服务器负载,如果超过某个点,重新启动apache(以及当你进入时做的任何其他操作)。 如果你创build一个cron作业来运行每一分钟左右,那么也许你可以赶上负载并在服务器被打得太重之前修复它。 否则,这项工作可能需要一段时间才能运行,就像你的问题build立一个SSH会话…但我的直觉告诉我,这将有一个更好的机会,无论。
尝试看看究竟发生了什么。 也许你可以保持dynamic生成的内容仍然从apache服务,但让静态内容服务更好的服务器,如ngingx / lighthttpd / mathopd – 在相同的hsot [如果你有一个ip或可以使用另一个端口],或在另一个主机上。