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