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 чтобы найти процесс, ответственный за захват всей вашей памяти.

Другие вопросы по тегам