我的 Debian 服务器有时会超载(由于大量的 Apache 进程和编写糟糕的网站)。软件开发人员正在花时间修复该问题,但在他们修复之前,我必须应对不断超载的服务器。
当它超载时,我很难与机器建立 SSH 连接,因为它的负载太大了。如果我设法建立 SSH 连接,我总是能够重新启动 apache,从而将服务器从疯狂的网站代码中拯救出来。
但有时我可能需要一个小时左右才能建立连接,因为我的 SSH 连接一直超时。
有人能建议一种方法来保证我始终可以通过 SSH 接入,即使服务器负载很大吗?
答案1
重新调整sshd
进程以提高其优先级。在资源紧张时应该会有所帮助
答案2
解决此问题的理想方法是启用某种带外访问方法。最简单的方法可能是串行控制台。您可以获得允许您通过 ssh 进入并访问服务器串行控制台的串行控制台。许多不错的托管公司可以在专用和托管服务器上提供这种访问。或者,您可能拥有诸如启用 IP 的 KVM 或 HP 的 iLO 或 Dell 的 DRAC 等无人值守管理。
答案3
如果无法连接的原因是由于带宽而不是系统资源,那么您可以始终在网络边界防火墙处应用流量整形。如果是系统资源问题,请编写一个脚本来查找系统资源是否耗尽,如果连续运行 3 次,它会检测到资源问题,然后自动重新启动 Apache。