mongodb стал медленным, когда количество документов превысило 100 000.Любая оптимизация производительности? - PullRequest
3 голосов
/ 14 июня 2011

Я запускаю один экземпляр mongodb, который вставляется с журналами с сервера приложений.текущая скорость вставки в производстве составляет 10 вставок в секунду.И это ограниченная коллекция.Я не использую никаких индексов.Запросы выполнялись быстрее, когда было небольшое количество записей.только одна коллекция имеет такой объем данных.даже запросы из коллекции, в которой очень мало строк, стали очень медленными.Есть ли какие-либо средства для улучшения производительности.

-Avinash

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Это очень сложный вопрос, потому что мы мало знаем о вашей конфигурации или структуре вашего документа.

Одна вещь, которая сразу же всплывает в моей голове, это то, что у вас не хватает памяти.10 вставок в секунду не очень много значат, потому что мы не знаем, насколько велики вставленные документы.

Если вы вставляете более крупные документы со скоростью 10 в секунду, вы можете использовать память, из-за чего операционная системапоместите некоторые из ваших записей на диск.

Когда вы запрашиваете без использования индекса, вы вынуждены сканировать каждый документ.Если ваши документы были помещены на диск операционной системой, у вас начнутся сбои страниц.Mongo потребуется извлечь страницы данных с жесткого диска и загрузить их в память, чтобы их можно было сканировать.Перед этим операционная система должна освободить место для этих данных в памяти, сбросив другие части памяти на диск.

Звучит так, будто вы связаны с вводом-выводом и двумя самыми большими вещами, которые вы можетеЧтобы исправить это, выполните следующие действия:

  • Добавьте больше памяти к машине, на которой выполняется mongod
  • Начните использовать индексы, чтобы базе данных не требовалось выполнять полное сканирование коллекции
2 голосов
/ 14 июня 2011

Используйте правильные индексы, хотя это повлияет на эффективность вставки в ограниченную коллекцию. Было бы лучше, если бы вы могли поделиться структурой коллекции и запросом, который вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...