¿Hay alguna forma de que podamos averiguar qué todos los índices se almacenan en caché en la RAM? Quiero saber las estadísticas relacionadas con la página para los índices individuales (número de aciertos y errores)
Puede obtener información general (éxito de toda la instancia) del db.serverStatus()
comando, y en particular:
http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.hits http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.misses
Estos números son totales vistos durante la vida útil del proceso, por lo que si desea obtener una tasa o ver la tendencia a lo largo del tiempo, deberá registrarlos periódicamente y diferenciar los valores en consecuencia. Afortunadamente, si instala MMS Monitoring , lo hará por usted y graficará los resultados.
Sin embargo, actualmente no hay estadísticas disponibles por índice. La solicitud de función relevante se puede encontrar aquí para fines de seguimiento y votación:
https://jira.mongodb.org/browse/SERVER-2227
Actualización: enero de 2016
Las estadísticas mencionadas anteriormente se han eliminado de la salida del comando de estado del servidor, por lo que ya no están disponibles. Sin embargo, la solicitud de característica referenciada ahora está completa y está disponible en la versión 3.2 en forma de $indexStats
operador de agregación (los documentos vinculados también contienen resultados de muestra). Para completar, aquí hay un ejemplo que puse juntos:
Antes de cualquier consulta, tengo solo 2 índices, el predeterminado _id
y indexme
ambos con 0 operaciones:
> 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")
}
}
Luego ejecuta un par de hallazgos para activar las operaciones indexme
y verificar nuevamente:
> 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")
}
}