Existe alguma maneira de descobrir o que todos os índices são armazenados em cache na RAM? Quero saber as estatísticas relacionadas à página para índices individuais (número de ocorrências e ocorrências não atendidas)
Você pode obter informações gerais sobre hits (em toda a instância) a partir do db.serverStatus()
comando e, em particular:
http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.hits http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.misses
Esses números são totais vistos durante toda a vida útil do processo, portanto, se você deseja obter uma taxa ou ver a tendência ao longo do tempo, precisará registrá-los periodicamente e diferir os valores de acordo. Felizmente, se você instalar o MMS Monitoring , ele fará isso por você e representará graficamente os resultados.
No entanto, atualmente não há estatísticas por índice disponíveis. A solicitação de recurso relevante pode ser encontrada aqui para fins de rastreamento e votação:
https://jira.mongodb.org/browse/SERVER-2227
Atualização: janeiro de 2016
As estatísticas mencionadas acima foram removidas da saída do comando status do servidor, portanto, não estão mais disponíveis. No entanto, a solicitação do recurso referenciado agora está completa e está disponível na versão 3.2 na forma do $indexStats
operador de agregação (os documentos vinculados também contêm saída de amostra). Para completar, aqui está um exemplo que reuni:
Antes de qualquer consulta, tenho apenas 2 índices, o padrão _id
e indexme
, ambos com 0 operações:
> 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")
}
}
Em seguida, execute algumas descobertas para aumentar as operações indexme
e verifique novamente:
> 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")
}
}