Я использую Mongodb на моем Windows Server 2012 более двух лет. С момента последнего обновления возникли некоторые странные проблемы, которые в конечном итоге приводят к использованию всей RAM-памяти.Проблемы с памятью с новой версией Mongodb
Служба Iv'e сконфигурирована для MongoDB выглядит следующим образом:
logpath=d:\data\log\mongod.log
dbpath=d:\data\db
storageEngine=wiredTiger
rest=true
#override port
port=27017
#configsvr = true
shardsvr = true
И для того, чтобы ограничить использование памяти кэша Iv'e добавили следующую строку:
wiredTigerCacheSizeGB=10
И это где начались странные вещи. Когда я проверяю диспетчер задач, он говорит, что теперь Mongodb действительно ограничен 10 ГБ, как я определил в сервисе, но на самом деле он использует намного больше 10 ГБ.
В первом изображении вы можете увидеть объем памяти, отсортированный по потреблению оперативной памяти
В то время как на самом деле машина, я использую имеет 28GB в общей сложности
Это сумасшедшее приводит потребление к сбою в сценариях, которые я запускаю, даже самых простых, даже когда я запускаю простые запросы, такие как «count» или «different», я считаю, что это прямые результаты потребления памяти.
Когда я проверил файлы журналов я увидел, что есть много открытых соединений, что даже тогда, когда сессия заканчивается это указывает на то, что по-прежнему открыт такое же количество соединений:
Таким образом, в конце концов, я имеют два основных вопроса: 1. Есть ли способ решить эту проблему без переоценки версии Mongodb? 2. Файл конфигурации выглядит правильно? все, что нужно?
Вы должны открыли новый вопрос, когда Вы включаете свои новые данные соединения и изменить этот вопрос, вместо изменить свой вопрос и не принимать ответ. 1) Вам нужно указать, какие версии MongoDB задействованы. i.e от версии до версии. Что касается соединения, это объединение пулов, вам нужно указать, как вы открываете соединения. то есть язык и версию драйвера. 2) См. [Параметры конфигурации] (https://docs.mongodb.com/manual/reference/configuration-options/). В зависимости от вашего варианта использования развертывания вам, скорее всего, не нужны 'shardsvr' и' rest'. –