Я тестировал, как машина Ubuntu 16.04 справляется с нехваткой памяти, и у меня было несколько приостановленных заданий, которые использовали почти всю оперативную память на сервере. Я все еще мог запускать обычные команды bash, когда вчера вечером ушел с работы. Утром (без каких-либо действий с сервером) все команды ( ps
, free
, ls
, и т. д.) выдавали следующую ошибку:
-bash: fork: Cannot allocate memory
В конце концов мне удалось запустить jobs
и kill %1
восстановить машину. Повезло, что я оставил открытым сеанс SSH, потому что дальнейшие соединения SSH не удавалось (клиент просто не показывал командную строку после аутентификации).
Тот факт, что обычные пользовательские программы могут эффективно вывести из строя весь сервер до такой степени, что при отсутствии существующего сеанса SSH его придется жестко перезагружать,высокобеспокоюсь! Я так понял, что Linux (или любая другая ОС) должна убивать процессы, чтобы освободить оперативную память, прежде чем вся система придет в такое непригодное для использования состояние. Как мне заставить ее это сделать?