Является ли производительность mongodb медленнее, когда дисковое хранилище почти заполнено

#java #mongodb #performance #server

#java #mongodb #Производительность #сервер

Вопрос:

Я все еще новичок в использовании базы данных mongodb.

Я считаю, что mongodb довольно хорош, но теперь у меня есть некоторые проблемы.

У меня есть java-приложения с mongodb, и теперь он работает на рабочем сервере в течение 3-4 месяцев. Объем памяти, выделенный для mongodb, составляет 1,5Т. Сервер redhat с mongodb v3.2.

Через 1-2 месяца это хорошо, потому что хранилище все еще ниже 60% выделенного хранилища. Но по какой-то причине после того, как диск превысит 80%, процесс замедляется и становится медленнее.

Сервер mongodb является одноузловым, не использующим набор реплик или сегментирование.

И мои вопросы:

  1. Это нормально?
  2. Если да, есть ли какие-либо идеи по решению этой проблемы?

Заранее спасибо

Комментарии:

1. Что ж, с учетом приведенных выше деталей проблему сложно отладить. Вы видели частую замену памяти на вашем сервере базы данных? Какова оперативная память вашей базы данных? Размер набора данных? Много ли дисковых операций ввода-вывода? Как насчет индексов?

2. Есть ли у вас данные о времени производительности ввода-вывода с момента первого запуска? Потому что да, это нормально — по мере заполнения файловой системы потребуется больше времени для поиска нераспределенного пространства для размещения новых данных, а также потребуется больше времени для поиска в используемом пространстве для поиска запрошенных данных. Самое простое решение? Поместите данные в более быструю дисковую систему. Есть причина, по которой продаются более быстрые дисковые системы. Писать быстрый код ввода-вывода сложно, и решение, как правило, зависит от конкретного дизайна, а время программирования дорого по сравнению с простой покупкой какого-нибудь быстрого оборудования.

3. Вы пытаетесь создать индекс? Без индексов MongoDB сканирует каждый документ в коллекции, чтобы выбрать те документы, которые соответствуют инструкции запроса. Индексы могут ограничивать количество анализируемых документов. Также вам нужно больше оперативной памяти для индексов.