内存不足时如何重启HTTPD服务器?

时间:2019-03-04 06:49:04

标签: php apache amazon-web-services ubuntu

我在AWS上托管了一个VPS,该VPS使用httpd运行PHP。通常,一段时间后,服务器(4GB RAM)已超载,并需要很长时间才能响应请求,但不会出现任何错误。重新启动httpd可以解决此问题,但是由于它不会产生任何错误,因此forever无法自动重新启动它。每当服务器内存低于特定数字时,如何写脚本以重新启动httpd sudo service httpd restart?谢谢。

3 个答案:

答案 0 :(得分:2)

这是一个没有真正好的答案的问题,因为首先您需要准确找出正在消耗所有RAM的东西。

我有几个VPS,其中一些内存只有2GB,正在运行CWP.Pro,防火墙,DNS和邮件服务器,而HTTPD在收到大量请求后仍然不会崩溃。

请考虑修复该问题。

如果您有Monit设置,为了回答您的问题,它可以做您想要的。它会监视您的服务,并在占用过多资源后停止它们,在不运行或出现问题时重新启动它们,等等。

以下摘录显示了使用它的人所说的话:

当您无法监视服务器的服务可用性时,最好寻求自动监视和重新启动实用程序的帮助。最近4天,我在享受假期的时候离开了服务器。在这段时间内,由于负载,我的lighttpd Web服务器死了,但是它在2分钟内自动重新启动。我配置了用于监视名为monit的Linux系统上的服务的实用程序。它提供了系统监视和对UNIX等系统执行错误恢复所需的所有功能。

总结一下,我在这里所说的就是安装和使用Monit的链接: Monit 3rd Party

以及官方网站: Official Site

答案 1 :(得分:1)

我从您的问题中猜测您正在使用Ubuntu / Debian兼容操作系统。 Linux上的free命令为您提供系统的内存使用情况。因此,如果满足有关内存使用的任何条件,则可以使用freegawk编写bash脚本(从输出中过滤掉必要的信息)以发出重新启动命令。 最后创建一个cron以定期运行您的脚本

答案 2 :(得分:0)

您可以编写一个cron,该cron每隔5s或您认为的任何间隔运行一次,并且确实为httpd重新启动。

相关问题