Como encontrar estatísticas de índice do MongoDB

8

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)

Vishakha dipak
fonte

Respostas:

9

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 $indexStatsoperador 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 _ide 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 indexmee 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")
    }
}
Adam C
fonte
dos documentos: "Alterado na versão 3.0: a saída do status do servidor não inclui mais as seções workingSet, indexCounters e recordStats." Alguma outra ideia?
serv-inc