Почему mongodb продолжает падать при работе внутри контейнера с ограничением памяти? - PullRequest
0 голосов
/ 27 июня 2019

Я переместил mongodb с хоста на контейнер, так как он занимал почти всю оперативную память хоста.Контейнер был запущен с ограничениями памяти (-m) и неограниченным пространством подкачки (--memory-swap = -1).Также был ограничен размер кэша WiredTiger (--wiredTigerCacheSizeGB 2).Почему mongodb все еще продолжает падать?

Я уже рассмотрел множество подобных вопросов и ресурсов и попробовал их решения (все они упоминают ограничение размера кэша wiredtiger и дают неограниченный размер подкачки для контейнера вместе с ограниченной памятью, что я уже сделал):

https://dba.stackexchange.com/questions/192364/mongodb-terminates-when-it-runs-out-of-memory (на этой странице есть ссылки на многие другие ресурсы, которые я тоже исследовал) https://github.com/openwhyd/openwhyd/issues/144

Вот как я запустил контейнер монго:

docker run -d -it -p 27017:27017 -m 1G --memory-swap -1 mongo mongod --auth --wiredTigerCacheSizeGB 0.9

Я выполнял сценарий, который непрерывно сбрасывал тяжелые документы в базу данных.Он работал в течение 2 дней, прежде чем Монго упал.Я предполагаю, что контейнер использует пространство подкачки хоста.Хост (windows) имеет пространство подкачки около 20 ГБ.

Я ожидал, что mongodb будет использовать память, выделенную для контейнера, и как только он будет полностью занят, он будет использовать диск для дальнейших операций (и, конечно, с помощью LRUкэширование), с заданной конфигурацией контейнера.Но вместо этого он вылетает каждый раз с проблемой OOM.Решит ли проблема увеличение пространства подкачки?

...