Я использую Ubuntu 14.04. Недавно, когда я вхожу в систему через SSH со своим пользователем с sudo полномочиями, каждая команда, я выполняю результаты в, “Не может выделить память” ошибка. Вот некоторые, я попробовал в своей консоли
myuser@mymachine:~$ whoami
-bash: fork: Cannot allocate memory
myuser@mymachine:~$ uname -a
-bash: fork: Cannot allocate memory
Даже если я пробую sudo reboot now
Я получаю вышеупомянутую ошибку, таким образом, я не знаю то, что еще я могу попытаться разблокировать свой экземпляр. Хостом является DigitalOcean, если это имеет значение.
Править: На ответ/предложение, данный здесь, вывод "свободных"
myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory
Как написано в ошибке сообщения, вашему устройству не хватает памяти. Это может происходить по ряду причин, но в основном что-то съедает всю вашу память и не оставляет ничего, даже для простейшего использования команд.
Я бы посоветовал вам перезагрузить дроплет (просто зайдите в панель управления клиента и выберите «Перезагрузить»), ssh
, а затем запустите top
или htop
. Следите за использованием памяти и посмотрите, какой процесс использует всю память. Оттуда попробуйте либо
htop
или top
, чтобы узнать, сколько памяти вы используете для текущих программ. Если вы заметили, что используете почти все, попробуйте очистить некоторые, пройдя и удалив ненужные программы / процессы. В завершение принятого ответа следует учесть еще одну вещь: в вашей системе могут закончиться дескрипторов файлов или даже буферов сокетов и все еще есть много памяти, давая ту же ошибку. Это особенно верно, если виртуальный хостинг накладывает ограничения такого характера. В системах OpenVZ следите за содержимым
# cat / proc / user_beancounters
. Это даст вам в самом правом столбце первые переполнения. Если это правда, либо перейдите к более крупному пакету хостинга, либо найдите наиболее вероятного виновника: базу данных mysql или mariadb, которая может, при наличии дефектного приложения PHP, обрабатывать файлы утечки до сотен в секунду.
Это также может произойти, если на вашем веб-сервере есть ssh, открытый для Интернета, и он принимает входы по имени пользователя и паролю: даже если у вас запущен fail2ban, вы могли столкнуться с попыткой разбить распределенный словарь, что также потребляет много ресурсов.
Чтобы выйти из этого состояния без перезагрузки, вы можете вручную запустить убийцу OOM следующим образом:
echo 1 > /proc/sys/kernel/sysrq
echo f > /proc/sysrq-trigger
echo 0 > /proc/sys/kernel/sysrq