Мой рабочий комплект (db.collection.totalSize()
) - 21 GB. Мои индексы занимают . 3.5 GB.Указатель Входит в оперативную память, но все еще пейджинг
На 16 GB ОЗУ, через mongostat
Я наблюдаю, что возникают ошибки страницы. Обратите внимание, что они встречаются даже с запросами, использующими индекс.
Используя vmstat
, я вижу тяжелые чтения в разделе IO/bi.
Наконец, используя db.serverStatus()
в базе данных «администратора», я видел, что резидент МЕМ 10.6
GB.
Учитывая тот факт, что Mongo использует 10,6 ГБ, что, очевидно, больше, чем мой индекс, почему возникает пейджинг?
Таким образом, индекс поиска подходит для оперативной памяти, но выбор всего документа s берет io и ram (что там не используется для подкачки? –
@Kevin: добавлено еще несколько строк для пояснения –
Спасибо SH. Ясный, информативный ответ и полезная ссылка. Исходя из вашего обновления и ссылки, вероятно, что индекс соответствует ОЗУ, но ОС может помещать документы в ОЗУ. Учитывая, что моя оперативная память не охватывает рабочий набор, может возникнуть пейджинг, поскольку документ может заменить индексы в RAM, которая затем требует ошибки страницы, если нужно поместить индекс в память. –