Отношение MongoDB/RAM

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

Может ли кто-нибудь рассказать о соотношении индекса/ОЗУ и что происходит, когда и индивидуальный индекс, и все мои индексы превышают размер доступной ОЗУ?

Ответ 1

MongoDB сохраняет все, что может, из индексов в ОЗУ. Они будут заменены на LRU. Вы часто увидите документацию, в которой говорится о том, что вы должны хранить свой "рабочий набор" в памяти: если части индекса, к которому вы действительно обращаетесь, соответствуют памяти, все будет в порядке.

Ответ 2

Это рабочий размер набора плюс индексы MongoDB, которые в идеале должны постоянно находиться в ОЗУ, т.е. объем доступной ОЗУ в идеале должен быть, по крайней мере, размером рабочего набора плюс размер индексов плюс то, что остальная часть ОС (операционная System) и другое программное обеспечение, работающее на одном компьютере. Если доступная оперативная память меньше этого, LRUing - это то, что происходит, и поэтому мы можем значительно замедлить работу. Одно дело иметь в виду, что в индексе btree ведра кэшируются, а не отдельные ключи индекса, т.е. Если бы мы имели равномерное распределение ключей в индексе, включая исторические данные, нам может потребоваться больше индекса в ОЗУ по сравнению с тем, когда мы иметь составной индекс во времени плюс что-то еще. С последними, ключи в том же ведро btree, как правило, относятся к одной и той же эпохе, поэтому этого оговорки не происходит. Кроме того, мы должны иметь в виду, что имена наших полей в BSON хранятся в записях (но не в индексе), поэтому, если мы находимся под давлением памяти, их следует держать в тени.

Те, кто интересуется текущим использованием виртуальной памяти MongoDB (что, конечно, также относится к ОЗУ), могут посмотреть на статус mongod.

@see http://www.markus-gattol.name/ws/mongodb.html#sec7