由于过去一两年中的各种原因,我在运行往往会导致平均负载非常高的进程的服务器方面遇到了问题。
在这些情况下,我经常可以 ping 通服务器,但是它对任何其他连接都没有任何反应,而且我经常必须对机器进行电源循环。
造成这种巨大负载的一个原因包括虚拟服务器上的 Apache 进程配置不当,导致分配给它的硬件允许过多的并发连接,而且我今晚似乎在另一台服务器上运行了一些程序,似乎做了类似的事情。
我很好奇的是,Linux 是否有工具可以检测非常大的平均负载并以某种方式中断这些进程,从而允许机器从中恢复?
如果我的措辞不够清楚,我深感抱歉,我知道这是一个相当开放的结局。
答案1
在我看来你已经回答了你自己的问题。
导致这种巨大负载的一个原因包括虚拟服务器上的 Apache 进程配置不当......
如果您的 Apache 服务器配置不当,请修复该配置。您已经进行了调查,因此现在应该实施适当的修复。用于中断/重新启动/终止失控进程的脚本只是一种解决方法。
话虽如此,我不知道有什么工具可以满足您的要求。但我认为您不需要工具,您需要的是针对您正在使用的系统的适当配置。
答案2
baumgart 是正确的,你应该解决这个问题。但是,作为一种解决方法,你可以监控如果平均负载过高,则执行脚本。不过,这有点像 hack,所以远非完美。您也可以编写一些相对简单的代码来执行此操作。