SSH и -bash: fork: Невозможно выделить память VPS Ubuntu
Я размещаю свое приложение Rails на Ubuntu 12.04 VPS, Nginx + Unicorn, после развертывания все в порядке, но спустя несколько часов, когда я ssh к VPS, я получаю это сообщение
-bash: fork: Cannot allocate memory
-bash: wait_for: No record of process 4201
-bash: wait_for: No record of process 4201
Если я выполню любую команду, она просто вернет
-bash: fork: Cannot allocate memory.
1 ответ
Кажется, у тебя закончилась память. Многие VPS-серверы настроены без подкачки, поэтому, когда у вас заканчивается память, это может привести к непредсказуемым последствиям.
Самый простой способ исправить это - выделить больше памяти для вашего VPS, что, вероятно, будет стоить больше денег. Следующим лучшим способом (кроме запуска меньшего количества материала и памяти, оптимизирующего все работающее) было бы добавить раздел подкачки или файл подкачки.
Для файла подкачки объемом 1 ГБ (как root):
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
Обязательно добавьте его в /etc/fstab так же:
/swapfile none swap defaults 0 0
Это заставит его вернуться после перезагрузки.
Чтобы выйти из этого состояния без перезагрузки, вы можете запустить OOM killer вручную следующим образом:
echo 1 > /proc/sys/kernel/sysrq
echo f > /proc/sysrq-trigger
echo 0 > /proc/sys/kernel/sysrq
Сделав это, вы можете проверить dmesg
чтобы найти процесс, ответственный за захват всей вашей памяти.