À medida que as instâncias do MongoDB crescem, exceções de armazenamento — como discos quase cheios, crescimento acelerado e coleções com excesso de índices — podem degradar o serviço antes da percepção do problema. A análise de armazenamento no CloudDBA oferece uma visão centralizada do uso de espaço em instâncias de replica set e sharded cluster do ApsaraDB for MongoDB, detecta exceções automaticamente e permite recuperar espaço em disco por meio de desfragmentação sem tempo de inatividade.
Pré-requisitos
Antes de começar, verifique se:
-
A instância é um replica set ou sharded cluster executando uma versão compatível:
Versão principal do mecanismo Versão secundária do mecanismo Compatibilidade MongoDB 4.0 3.0.x Não MongoDB 4.2 4.0.0–4.0.22 Não >= 4.0.23 Sim MongoDB 4.4 5.0.0–5.0.6 Não >= 5.0.7 Sim MongoDB 5.0 Todas Sim MongoDB 6.0 Todas Sim MongoDB 7.0 Todas Sim MongoDB 8.0 Todas Sim Se você for um usuário do Resource Access Management (RAM), sua conta deve ter a permissão AliyunHDMFullAccess ou AliyunHDMReadOnlyAccess no Database Autonomy Service (DAS). Para mais detalhes, consulte Como usar o DAS como usuário RAM?
Visualizar o uso de armazenamento
Faça login no console do MongoDBconsole do MongoDB do ApsaraDB.
No painel de navegação à esquerda, clique em Replica Set Instances ou Sharded Cluster Instances.
No canto superior esquerdo da página, selecione o grupo de recursos e a região da instância.
Clique no ID da instância ou em Manage na coluna Actions.
No painel de navegação à esquerda da página de detalhes da instância, escolha CloudDBA > Storage Analysis.
-
Na aba Storage Overview, revise as seguintes seções:
-
Storage — Métricas principais sobre a integridade geral do armazenamento:
Métrica
Descrição
Ação
Exception
Quantidade de exceções de armazenamento detectadas. Uma exceção é acionada quando: o uso de armazenamento ultrapassa 90%, o espaço disponível pode se esgotar em sete dias ou uma única coleção possui mais de 10 índices.
Resolva as exceções rapidamente. O esgotamento de armazenamento não tratado pode bloquear gravações e degradar o desempenho da instância.
Avg Daily Increase in Last Week
Crescimento médio diário de armazenamento nos últimos sete dias. Fórmula: (Armazenamento disponível no momento da coleta − Armazenamento disponível há sete dias) / 7. Pressupõe tráfego estável — os valores são menos precisos após importações em massa, exclusões de dados, migrações ou reconstruções de instância.
Utilize esta métrica para projetar necessidades de capacidade e planejar upgrades de armazenamento antes que o espaço em disco se esgote.
Available Days of Storage
Estimativa de dias até o esgotamento do armazenamento. Fórmula: Armazenamento disponível / Aumento médio diário nos últimos sete dias. Um valor de 90+ indica armazenamento suficiente para o futuro previsível. Pressupõe tráfego estável.
Se o valor for baixo (por exemplo, abaixo de 14 dias), expanda o armazenamento ou arquive dados para liberar espaço.
Used Storage
Quantidade de armazenamento utilizado e capacidade total de armazenamento alocada à instância.
Monitore este indicador juntamente com Exception para acompanhar a integridade geral do armazenamento.
Exceptions — Detalhes de quaisquer exceções de armazenamento detectadas. Use essas informações para planejar ações corretivas.
Storage Trend — Tendência de uso de armazenamento nos últimos sete dias.
Tablespaces — Detalhamento do armazenamento por coleção. Clique no nome de uma coleção para visualizar seus índices.
-
Para visualizar o armazenamento por espaço de dados, clique na aba Data Space. Clique no nome de um espaço de dados para ver os detalhes de seu namespace ou no nome de uma coleção para visualizar seus índices.
A análise de armazenamento suporta até 20.000 coleções. Se nenhum resultado aparecer, verifique se a contagem de coleções excede esse limite ou se a conta atual tem permissão para acessá-las. Para reautorizar, consulte Conceder permissões para análise de armazenamento .
Desfragmentar discos
Com o tempo, operações de exclusão e atualização deixam espaço fragmentado nas coleções. A desfragmentação recupera esse espaço e restaura a eficiência do disco.
A desfragmentação é executada apenas em nós ocultos. Para desfragmentar um nó primário ou secundário, altere-o primeiro para a função de nó oculto ou execute diretamente o comando compact. Para etapas de failover primário/secundário, consulte Failover primário/secundário. Para executar o compact manualmente, consulte Desfragmentar os discos de uma instância para aumentar a utilização do disco.
Escolher um método de desfragmentação
Utilize a tabela a seguir para decidir entre desfragmentação automática e manual:
|
Cenário |
Método recomendado |
|
Muitas coleções com pequeno espaço reciclável (cada uma abaixo de 100 GB) |
Desfragmentação automática |
|
Uma única coleção com grande espaço reciclável |
Desfragmentação manual |
|
Espaço reciclável superior a 100 GB para uma única coleção |
Desfragmentação manual (obrigatória — a desfragmentação automática ignora essas coleções) |
Configurar desfragmentação automática
Configure um plano de desfragmentação para que o DAS recupere automaticamente o espaço fragmentado durante a janela de manutenção.
O DAS executa a desfragmentação automática em coleções que atendem a todas as condições a seguir:
A soma do armazenamento de índices e dados excede 1 GB
A taxa de fragmentação excede 20%
O espaço reciclável total em todas as coleções elegíveis no nó oculto não excede 100 GB por rodada
Para configurar a desfragmentação automática:
Na seção Tablespaces da página de Análise de Armazenamento, localize a coleção desejada e clique em Recycle na coluna Fragmentation Rate.
Na caixa de diálogo Recycle, configure as definições do plano de desfragmentação, incluindo a janela de manutenção.
Clique em OK.
Desfragmentar discos manualmente
Faça login no console do MongoDBconsole do MongoDB do ApsaraDB.
No painel de navegação à esquerda, clique em Replica Set Instances ou Sharded Cluster Instances.
No canto superior esquerdo da página, selecione o grupo de recursos e a região da instância.
Clique no ID da instância ou em Manage na coluna Actions.
No painel de navegação à esquerda da página de detalhes da instância, escolha CloudDBA > Storage Analysis.
Na seção Tablespaces, localize a coleção a ser desfragmentada e clique em Recycle na coluna Fragmentation Rate.
Na caixa de diálogo Recycle, vá para a seção Collection with High Fragmentation Rate, encontre a coleção e clique em Recycle na coluna Actions.
Selecione Execute Now ou Run in the O & M window e confirme.
A desfragmentação não entra em vigor imediatamente. O comando compact continua sendo executado em segundo plano — o tempo real de recuperação depende do tamanho dos dados desfragmentados.
Desfragmente até 10 coleções simultaneamente. Aguarde a conclusão do lote atual antes de iniciar o próximo. Iniciar um novo lote enquanto o anterior ainda está em execução pode causar falhas nas tarefas.
Se a taxa de fragmentação for baixa, a quantidade de espaço recuperado poderá ser pequena.
Caso o espaço reciclável de uma coleção exceda 100 GB, a desfragmentação poderá levar mais de uma hora.
Verificar resultados da desfragmentação
Após a conclusão da tarefa de desfragmentação, clique em Re-analyze para atualizar os resultados da análise de armazenamento.
A eficácia da desfragmentação depende da distribuição dos dados. Se o espaço recuperado for menor que o esperado, execute a tarefa de desfragmentação novamente.
Conceder permissões para análise de armazenamento
Se nenhum resultado de análise de armazenamento aparecer, a conta pode não ter as permissões necessárias nas coleções.
Para reautorizar a conta, escolha um dos métodos a seguir:
-
Usando uma conta existente:
Na parte superior da página de Análise de Armazenamento, clique em Re-authorize.
Insira o nome de usuário e a senha nos campos Database Account e Password.
Clique em OK.
-
Using a generated authorization command:
Na parte superior da página de Análise de Armazenamento, clique em Re-authorize.
Insira o nome de usuário e a senha nos campos Database Account e Password.
Clique em Generate Authorization Command.
Clique em OK.
Perguntas frequentes
O que significa o erro (Interrupted) Compaction interrupted on table:*** due to cache eviction pressure?
A instância cujos discos você deseja desfragmentar é de uma versão anterior e possui especificações baixas. Ao executar o comando compact na instância, ela falha devido a uma grande quantidade de dados em cache.
Escolha um horário diferente para tentar novamente. Se a falha persistir, envie um ticket para suporte.
Referência de API
|
Operação |
Descrição |
|
Cria uma tarefa de análise de armazenamento para consultar os detalhes de uso de um ou mais bancos de dados e coleções |
|
|
Consulta o status e os resultados de uma tarefa de análise de armazenamento |
Próximos passos
Para instâncias executando versões do MongoDB anteriores à 4.0, consulte Desfragmentar os discos de uma instância para aumentar a utilização do disco.
Para realizar um failover primário/secundário antes da desfragmentação, consulte Failover primário/secundário.