Назад | Перейти на главную страницу

Как получить текущий размер рабочего набора MongoDB

Из док , он сказал

«Для лучшей производительности большая часть вашего активного набора должна умещаться в ОЗУ».

Так, например, мой db.stats() дай мне

{
"db" : "mydb",
"collections" : 16,
"objects" : 21452,
"avgObjSize" : 768.0516501957859,
"dataSize" : 16476244,
"storageSize" : 25385984,
"numExtents" : 43,
"indexes" : 70,
"indexSize" : 15450112,
"fileSize" : 469762048,
"ok" : 1
}

Какое значение working set size?

В ТАК вопрос / ответ Связанные квантами в комментариях верны, «Рабочий набор» - это в основном объем данных И индексов, которые будут активны / используются вашей системой.

Вы не можете сказать db.stats() что это будет, если вы не думаете, что вам понадобится весь набор данных и весь индекс в ОЗУ. То есть вы можете рассчитать максимальный рабочий набор для этой базы данных, но не фактический активный рабочий набор. Максимум - это сумма:

  1. dataSize - Общий размер данных, хранящихся в этой базе данных.
  2. indexSize - Общий размер всех индексов, созданных в этой базе данных

В вашем случае этот максимум будет примерно 30,45 МБ с учетом вставленного вами вывода.

Для отслеживания фактического использования памяти я бы рекомендовал комбинацию цифр из db.stats() и графики памяти (в частности, резидентной памяти), доступные в бесплатном инструменте мониторинга - MMS.

Обновление (08.04.2013):

Версия 2.4 добавила Оценщик размера рабочего набора к команда serverStatus - это всего лишь оценка, но ее можно использовать в качестве руководства и проверить, подходят ли другие цифры и оценки, указанные выше, для вашего экземпляра MongoDB.

Обновление (сентябрь 2016 г.):

Три года спустя после моего первоначального ответа, и все намного сложнее - как правило, получение размера ваших данных и ваших индексов по-прежнему является хорошей отправной точкой. Но понимание вещей в MongoDB теперь будет зависеть от того, какой механизм хранения вы используете. Кроме того, Версия 3.0 удалила упомянутый выше оценщик рабочего набора для MMAP как часть работы по блокировке уровня коллекции (см. СЕРВЕР-13783). Сейчас (например) статистика кеша для WiredTiger двигатель в качестве замены при условии, что вы перешли на новый двигатель. Для MMAP, общая рекомендация - посмотреть на ошибки страницы метрика в качестве прокси для того, вписываются ли ваши данные в память или нет.