Можно ли как-то выяснить, какие все индексы кэшируются в ОЗУ? Я хочу знать статистику по отдельным страницам (количество попаданий и промахов)
Вы можете получить информацию об общем попадании (в пределах экземпляра) из db.serverStatus()
команды, в частности:
http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.hits http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.misses
Эти цифры являются итоговыми значениями, наблюдаемыми за время существования процесса, поэтому, если вы хотите получить показатель или увидеть тренд с течением времени, вам нужно будет периодически их записывать и соответствующим образом изменять значения. К счастью, если вы установите MMS-мониторинг , он сделает это за вас и отобразит результаты.
Однако в настоящее время нет статистики по индексу. Соответствующий запрос функции можно найти здесь для отслеживания и голосования:
https://jira.mongodb.org/browse/SERVER-2227
Обновление: январь 2016
Статистика, указанная выше, была удалена из выходных данных команды состояния сервера, поэтому больше не доступна. Однако ссылочный запрос функции теперь завершен и доступен в версии 3.2 в форме $indexStats
оператора агрегирования (связанные документы также содержат пример выходных данных). Для полноты вот пример, который я собрал:
До любых запросов у меня есть только 2 индекса, по умолчанию _id
и indexme
оба с 0 ops:
> db.foo.aggregate( [ { $indexStats: { } } ] ).pretty()
{
"name" : "indexme_1",
"key" : {
"indexme" : 1
},
"host" : "localhost:27017",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2016-01-12T19:03:01.358Z")
}
}
{
"name" : "_id_",
"key" : {
"_id" : 1
},
"host" : "localhost:27017",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2016-01-12T18:59:24.292Z")
}
}
Затем запустите пару находок, чтобы активировать операции indexme
и проверьте еще раз:
> db.timecheck.find({indexme: 33})
> db.timecheck.find({indexme: 55})
> db.timecheck.aggregate( [ { $indexStats: { } } ] ).pretty()
{
"name" : "indexme_1",
"key" : {
"indexme" : 1
},
"host" : "localhost:27017",
"accesses" : {
"ops" : NumberLong(2),
"since" : ISODate("2016-01-12T19:03:01.358Z")
}
}
{
"name" : "_id_",
"key" : {
"_id" : 1
},
"host" : "localhost:27017",
"accesses" : {
"ops" : NumberLong(0),
"since" : ISODate("2016-01-12T18:59:24.292Z")
}
}