Как выделить зарезервированную оперативную память под SSH и/или консоль?
Рекомендую познакомиться с SysRq это поможет правильно перезагрузить/выключить коллапсирующий сервер.

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

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