Подтвердить что ты не робот

Что произойдет, когда размер mongodb db будет times> then RAM?

Будет ли медленнее? Вы найдете работу только для данных, которые вписываются в ОЗУ? Что произойдет, если индексы mongodb будут больше RAM?

4b9b3361

Ответ 1

О Монго

MongoDB использует файлы с отображением памяти.

Это означает, что операционная система по существу контролирует то, что выгружено в и из памяти (с диска и с диска).

Правила

Если ваши индексы + рабочий набор превышают объем памяти, последние недавно использованные страницы (разделы памяти) будут сброшены на диск. Это оставляет только самые последние использованные данные, которые все еще пригодны для хранения в памяти.

Ваша операционная система контролирует это.

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

Если вы не нарушаете это правило, вы должны иметь отличную производительность большую часть времени, даже если ваши индексы + общие данные могут превышать общую доступную память.

Как это работает

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

Примечание: это по существу ситуация, когда база данных сначала запускается (холодно).

Ничего не стоит в памяти, при этом возникают сбои страниц, когда требуются данные, и данные пересылаются в память по мере необходимости. Когда у вас закончилась нехватка памяти, последние недавно использованные страницы (куски) очищаются от памяти в пользу более горячих (более недавно полученных) данных.

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

Ответ 2

Если ваши индексы больше доступных оперативной памяти, производительность быстро падает . Сайт MongoDB специально советует вам "Удостоверьтесь, что ваши индексы могут поместиться в ОЗУ".

Если ваши запросы кажутся вялыми, вы должны убедиться, что ваши индексы достаточно маленький, чтобы вместить в ОЗУ. Например, если вы работаете на 4 ГБ ОЗУ и у вас есть 3 ГБ индексов, тогда ваши индексы, вероятно, не подходят в ОЗУ. Возможно, вам потребуется добавить RAM и/или проверить, что все индексы которые вы создали, фактически используются.