Monitore a desfragmentação de uma coleção fragmentada
Para monitorar a desfragmentação de uma collection fragmentada, use o comando balancerCollectionStatus
.
Você pode ver o estado de desfragmentação atual e o número de chunks restantes para processar. Isso mostra o progresso da desfragmentação.
Sobre esta tarefa
A desfragmentação usa as seguintes fases para reduzir o número de blocos em uma collection e melhorar o desempenho:
Mesclar chunks no mesmo shard que podem ser mesclados.
Migre chunks menores para outros shards. Um pequeno chunk é aquele que contém dados menores que 25% da configuração
chunkSize
.Mesclar os chunks restantes no mesmo shard que pode ser mesclado.
O procedimento dessa tarefa utiliza um exemplo de coleção fragmentada denominada ordersShardedCollection
em um banco de dados denominado test
.
Você pode usar sua própria coleção fragmentada e banco de dados no procedimento.
No procedimento para esta tarefa, você monitora as fases e acompanha o progresso da desfragmentação.
Antes de começar
Comece a desfragmentar uma collection fragmentada. Para obter detalhes, consulte Iniciar a desfragmentação de uma collection fragmentada.
Conecte-se a
mongos
.
Procedimento
Examinar documento de saída
O comando anterior retorna um documento com informações sobre o status da desfragmentação, a fase atual e o trabalho de desfragmentação restante. Por exemplo:
{ "balancerCompliant": false, "firstComplianceViolation": "defragmentingChunks", "details": { "currentPhase": "moveAndMergeChunks", "progress": { "remainingChunksToProcess": 1 } } }
A tabela a seguir descreve os campos do documento.
Campo | Tipo | Descrição |
---|---|---|
balancerCompliant | Boolean | false se os chunks da collection precisarem ser movidos. Caso contrário, true . |
firstComplianceViolation | String | Indica a razão pela qual os chunks do namespace devem ser movidos ou mesclados. Somente retornado se balancerCompliant for false . |
details | Objeto | Informações adicionais sobre o estado de desfragmentação atual. Somente retornado se firstComplianceViolation for defragmentingChunks . |
currentPhase | String | Fase de desfragmentação atual:
|
remainingChunksToProcess | Inteiro | Número de chunks restantes para processar na fase atual. |
Para obter informações adicionais sobre os campos de documento retornados, consulte o documento de saída de status da collection do balancer.
Confirme que a desfragmentação foi concluída
Após a conclusão da desfragmentação, o comando retorna:
balancerCompliant: true
se a sua coleção estiver balanceada.balancerCompliant: false
comfirstComplianceViolation
definido para uma string diferente dedefragmentingChunks
se sua collection não estiver balanceada.
Exemplo de saída para uma collection balanceada após a conclusão da desfragmentação:
{ chunkSize: 0.2, balancerCompliant: true, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1677543079, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1677543079, i: 1 }) }
Próximos passos
Se a desfragmentação ainda não tiver sido concluída, você poderá interrompê-la. Para obter detalhes, consulte Parar de desfragmentar uma coleção fragmentada.
Saiba mais
Para visualizar o documento de saída de status da coleção do balanceador, consulte Documento de saída de status da coleção do balanceador
Status do shard da impressão, consulte
db.printShardingStatus()
Recuperar detalhes de status do shard, consulte
sh.status()
Para saber mais sobre campos de coleção de status de fragmentação, consulte a página Coleção fragmentada
Consulte instâncias ativas do mongos, consulte Instâncias
mongos
ativasMonitore fragmentos usando o MongoDB Atlas, consulte Analisar clusters fragmentados