Esiste un modo per capire quali sono tutti gli indici memorizzati nella cache nella RAM? Voglio sapere le statistiche relative alla pagina per i singoli indici (numero di risultati positivi e negativi)
Esiste un modo per capire quali sono tutti gli indici memorizzati nella cache nella RAM? Voglio sapere le statistiche relative alla pagina per i singoli indici (numero di risultati positivi e negativi)
Risposte:
È possibile ottenere informazioni sui risultati generali (a livello di istanza) dal db.serverStatus()
comando, in particolare:
http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.hits http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.misses
Questi numeri sono totali visti per tutta la durata del processo, quindi se vuoi ottenere un tasso o vedere l'andamento nel tempo, dovrai registrarli periodicamente e diffondere i valori di conseguenza. Per fortuna, se installi MMS Monitoring , lo farà per te e rappresenterà graficamente i risultati.
Tuttavia, al momento non sono disponibili statistiche per indice. La richiesta di funzionalità pertinente può essere trovata qui per scopi di monitoraggio e voto:
https://jira.mongodb.org/browse/SERVER-2227
Aggiornamento: gennaio 2016
Le statistiche di cui sopra sono state rimosse dall'output del comando status server, quindi non sono più disponibili. Tuttavia, la richiesta di funzionalità di riferimento è ora completa ed è disponibile nella versione 3.2 sotto forma di $indexStats
operatore di aggregazione (i documenti collegati contengono anche output di esempio). Per completezza, ecco un esempio che ho messo insieme:
Prima di qualsiasi domanda ho solo 2 indici, il valore predefinito _id
e indexme
, entrambi con 0 operazioni:
> 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")
}
}
Quindi esegui un paio di rilevamenti per eseguire l'operazione indexme
e controllare di nuovo:
> 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")
}
}