Назад | Перейти на главную страницу

Mongod застрял в остановке / ожидании на Ubuntu 14.04

Я установил MongoDB на Ubuntu 14.04 согласно документации. Он работает и работает нормально, за исключением того, что он загадочным образом останавливается каждые несколько часов и требует перезапуска вручную с помощью service mongod restart чтобы снова начать. Когда это происходит, в mongod.log ничего нет.

Кроме того, когда я перезапускаю, а затем проверяю статус с помощью service mongod status, это дает мне mongod stop/waiting событие, хотя приложение может подключиться к нему. Я искал, как это отладить, но на этом застрял.

Оказывается, проблема заключалась в том, что OOMkiller убивал процесс mongod. Как отмечено в производственных примечаниях MongoDB (https://docs.mongodb.com/v3.2/administration/production-notes/#disk-and-storage-systems):

Выделение пространства подкачки может помочь избежать проблем с памятью и предотвратить убийство mongod с помощью OOM Killer в системах Linux.

Я использовал следующие команды для создания файла подкачки, который устранил проблему (в Ubuntu 14.04):

> sudo fallocate -l 2G /swapfile
> sudo chmod 600 /swapfile
> sudo mkswap /swapfile
> sudo swapon /swapfile

Затем я добавил следующее в /etc/fstab файл, чтобы сделать это постоянным:

/ swapfile нет swap sw 0 0