Это размер рабочего набора плюс индексы MongoDB, которые в идеале должны постоянно находиться в ОЗУ, т. Е. Объем доступной ОЗУ в идеале должен быть не меньше размера рабочего набора, а также размера индексов и остальной части ОС ( Система) и другое программное обеспечение, работающее на той же машине, что и нужно. Если объем доступной оперативной памяти меньше этого, то происходит LRUing, и поэтому мы можем получить значительное замедление.
Следует иметь в виду, что в индексе кешируются сегменты дерева, а не отдельные ключи индекса, т. Е. Если бы у нас было равномерное распределение ключей в индексе, в том числе для исторических данных, нам может потребоваться больше индекса в ОЗУ по сравнению с тем, когда мы составной индекс по времени плюс что-то еще. В последнем случае ключи в одном и том же сегменте btree обычно относятся к одной и той же эпохе, поэтому такого предостережения не происходит.
Кроме того, мы должны помнить, что наши имена полей в BSON хранятся в записях (но не в индексе), поэтому, если мы испытываем нехватку памяти, они должны быть короткими.
Те, кто интересуется текущим использованием виртуальной памяти MongoDB (что, конечно, также касается оперативной памяти), могут взглянуть на состояние mongod.
@ см. http://www.markus -gattol.name / ws / mongodb.html # sec7