Когда сервер использует память больше, чем доступная RAM, система выключит виртуальную машину. Тогда загрузиться можно будет только извне (панель управления VPS, например, vePortal или SolusVM). Однако должна быть возможность запланировать перезагрузку до возможного завершения работы.
Каков наилучший практический метод проверки используемой памяти и перезагрузки системы при достижении, например, 90% разрешенной оперативной памяти? Есть ли для этого обычная программа или сценарий? Я использую Debian / Ubuntu.
Нагиос мог это сделать, но Монит в значительной степени предназначен именно для этой проблемы и может быть настроен для перезапуска служб или всей машины в ситуациях нехватки памяти.
Я использую его на нескольких серверах, чтобы проверить, нет ли запущенных процессов, использующих чрезмерную память, и перезапустить их. Я считаю, что это намного проще настроить, чем действия nagios.
Это также полезно для проверки наличия сбоев в службах и их перезапуска.
Соответствующая часть monitrc будет выглядеть так:
check system myserver
if memory usage > 90% then restart
Красиво и просто :)
Не рекомендуется перезагружать VPS с помощью скрипта.
Если вашему серверу не хватает памяти при каждой загрузке, значит, ваш сервер никогда не работал.
Итак, я предлагаю вам использовать для этого панель управления VPS.
Вместо того, чтобы обрезать ветки, вы должны устранить корень проблемы. Попробуйте проанализировать то, какой процесс или действие съедает всю оперативную память. и исправьте эту активность, вместо того, чтобы перезагружать сервер, когда файлы ОЗУ увеличиваются на 90%. вы можете использовать nagis для этой цели: если RAM заполнится на 90%, вызовите обработчик событий, который отключит или перезагрузит сервер.