A pergunta / resposta do SO vinculada por quanta nos comentários está correta, o "Conjunto de trabalho" é basicamente a quantidade de dados E índices que estarão ativos / em uso pelo seu sistema.
Você não pode dizer com o db.stats()
que isso será, a menos que você pense que precisará ter todo o conjunto de dados e todo o índice na RAM. Ou seja, é possível calcular o conjunto de trabalho máximo para esse banco de dados, mas não o conjunto de trabalho ativo real. O máximo é a soma de:
- dataSize - O tamanho total dos dados mantidos neste banco de dados
- indexSize - O tamanho total de todos os índices criados neste banco de dados
No seu caso, esse máximo seria de aproximadamente 30,45 MiB, considerando a saída que você colou.
Para rastrear o uso de memória real Eu recomendaria uma combinação das figuras de db.stats()
e os gráficos de memória (memória residente em particular) disponíveis na ferramenta de monitoramento livre - MMS .
Atualização (04/08/2013):
A versão 2.4 adicionou um Estimador de tamanho do conjunto de trabalho ao comando serverStatus - é apenas uma estimativa, mas pode ser usado como um guia e para verificar se as outras figuras e estimativas acima fazem sentido para a instância do MongoDB.
Atualização (setembro de 2016):
Três anos depois da minha resposta original e as coisas são muito mais complicadas - geralmente obter o tamanho dos seus dados e seus índices ainda é um bom ponto de partida. Mas, descobrir as coisas no MongoDB agora dependerá do mecanismo de armazenamento que você está usando. Além disso, a Versão 3.0 removeu o estimador do Conjunto de Trabalho vinculado acima para o MMAP como parte do trabalho de bloqueio no nível da coleção (consulte SERVER-13783 ). Agora existem (por exemplo) as estatísticas de cache do WiredTiger
mecanismo como uma substituição, supondo que você tenha saltado para o novo mecanismo. Por isso MMAP
, a recomendação geral é considerar a métrica de falhas de página como um proxy para determinar se seus dados estão se encaixando na memória ou não.