当服务器使用的内存超过可用 RAM 时,系统将关闭虚拟机。然后,只能从外部启动(VPS 控制面板,例如 vePortal 或 SolusVM)。但是,在可能关闭之前应该可以计划重新启动。
检查已用内存并在达到允许 RAM 的 90% 时重新启动系统的最佳实用方法是什么?是否有通用程序或脚本可以执行此操作?我正在使用 Debian/Ubuntu。
答案1
Nagios 可以做到,但是监控就是为解决此问题而设计的,并且可以配置为在内存不足的情况下重新启动服务或整个机器。
我在几台服务器上使用它来检查占用过多内存的失控进程并重新启动它们。我发现它比 nagios 操作更容易配置。
它对于检查服务是否失败并重新启动它们也很有用。
monitrc 的相关部分如下所示:
check system myserver
if memory usage > 90% then restart
简洁又漂亮:)
答案2
与其砍掉枝条,不如斩断问题的根源。尝试分析哪个进程或活动占用了所有 RAM。然后修复该活动,而不是在 RAM 文件占用 90% 时重新启动服务器。您可以使用 nagis 来实现此目的,如果 RAM 占用 90%,则调用事件处理程序,该处理程序将关闭或重新启动服务器。
答案3
不建议使用脚本重新启动您的 VPS。
如果您的服务器在每次启动时都出现内存不足的情况那么您的服务器就永远不会启动。
因此,我建议您为此使用 VPS 管理控制面板。