Как выделить зарезервированную оперативную память под SSH и/или консоль?

Здравствуйте.

Проблема следующая. Есть сервак на linux/debian. Допустим у него кончается оперативная память, потом кончается своп и на этом сервер заканчивается. Хотелось бы в такие тяжелые моменты подключиться к нему по SSH, но как вы понимаете сервер в полном свопировании и памяти взять не от куда, соответственно по SSH не коннектит, даже IP-KVM не помогает — результат аппаратный перезапуск, ресинхронизация RAID и гемор.

Вопрос. Есть ли возможность/костыли, что бы выделить под определенные критические части системы зарезервированную память?

ЗЫ: советы вроде «надо правильно рассчитывать максимально выделяемые ресурсы» (время выполнения скриптов. выделяемой оперативки, максимального количества соединений) давать не надо — это само собой уже сделано. Сейчас я рассматриваю гипотетические варианты, которые хотелось бы закрыть на всякий пожарный.

Спасибо за внимание!
  • Вопрос задан
  • 4424 просмотра
Решения вопроса 1
subvillion
@subvillion
Рекомендую познакомиться с SysRq это поможет правильно перезагрузить/выключить коллапсирующий сервер.

Чаще всего сервер перестает отвечать т.к. приходит ООМ и стреляет себе в ногу уничтожая процесс init, который тянет за собой все остальные процессы в т.ч. sshd, консоль и службы.
Так что если сервер перестал отвечать — 99% что у него в настоящий момент просто вагон памяти )

1. Сделать больше swap.
2. Мониторить состояние сервера zabbix/ngaios и при переходе порога, условно, 30% swap used — идти и проверять что происходит.
3. Прикрутить автоматизатор (опасно) перезапускающий/уничтожающий процессы (monit) если программы имею свойство «течь» со временем.
4. Зажать через ulimit пользователей от имени которых работают процессы пожирающие память.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Я обычно пишу простой скрипт который чекает использование свапа, если больше половины использует тупо убивает скажем зажравшийся апач и запускает его снова, лучшего решения пока что нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы