Alto uso de armazenamento
Se o uso de armazenamento de uma instância do DDS for muito alto ou totalmente usado, a instância ficará indisponível.
Esta seção descreve como analisar e corrigir o alto uso de armazenamento.
Verificar o uso do armazenamento
O DDS fornece os dois métodos a seguir para verificar o uso de armazenamento de uma instância:
- Verifique o uso de armazenamento no console do DDS.
Você pode fazer logon no console do DDS e clicar na instância. Na página Basic Information, você pode exibir o espaço de armazenamento da instância na área Storage Space.
Figura 1 Verificar o uso do armazenamento - Veja as métricas de monitoramento (uso de armazenamento e armazenamento usado).
Para exibir métricas de monitoramento, consulte Exibição de métricas de monitoramento.
Figura 2 Verificar o uso do armazenamento
Solução
- Para instâncias de cluster, os dados podem ser distribuídos de forma desigual porque a coleção de banco de dados não é fragmentada corretamente. Como resultado, o uso do armazenamento é alto.
Para fragmentar a coleção de banco de dados corretamente, consulte Como aprimorar o desempenho do banco de dados configurando a partição?
- À medida que os dados de serviço aumentam, o armazenamento do banco de dados original é insuficiente. Você pode expandir o espaço de armazenamento para corrigir esse problema.
- Para expandir o armazenamento para instâncias de cluster, consulte Expansão de uma instância de cluster.
- Para expandir o armazenamento para instâncias de conjunto de réplicas, consulte Como expandir uma instância de conjunto de réplicas.
- Para expandir o armazenamento para instâncias de nó único, consulte Expansão de uma instância de nó único.
Se o espaço de armazenamento tiver atingido o limite superior da sua classe da instância, altere a classe da instância primeiro.
- Para alterar a classe de instância de cluster, consulte Alteração de uma classe de instância de cluster.
- Para alterar a classe de instância do conjunto de réplicas, consulte Alteração de uma classe de instância do conjunto de réplicas.
- Para alterar a classe de instância de nó único, consulte Alteração de uma classe de instância de nó único.
- Se um grande número de arquivos expirados ocupar o espaço de armazenamento, exclua os arquivos expirados a tempo. Por exemplo, se o banco de dados inteiro não for mais usado, execute dropDatabase para excluí-lo.
- O mecanismo de processamento de dados em segundo plano está com defeito.
Operações como gravar, atualize e excluir (incluindo inserir e excluir índice) são, na verdade, convertidas para gravar operações em segundo plano. Quando os dados de uma instância em uso são excluídos, o espaço em disco não é recuperado. Esse espaço em disco não recuperado é chamado de fragmentos de disco. Quando novos dados são inseridos, esses fragmentos são reutilizados sem solicitar novo espaço em disco. Os diferentes mecanismos de armazenamento subjacentes (RocksDB e WiredTiger) variam de acordo com cenários específicos.
Depois de excluir os dados, o RocksDB converte diretamente a operação delete para adicionar gravação. Depois que uma certa quantidade de dados redundantes é acumulada, o thread compacto em segundo plano é automaticamente acionado para mesclar e agregar dados de várias versões para liberar espaço em disco redundante. É aconselhável aguardar que o sistema recupere automaticamente o espaço em disco. Se o uso do espaço em disco for alto e próximo do limite somente leitura, entre em contato com o suporte técnico da Huawei.
Depois de excluir dados, o WiredTiger mescla e agrega dados de várias versões, causando fragmentos de espaço em disco. No entanto, o WiredTiger não retorna o espaço em disco para o sistema operacional. WiredTiger marca o espaço em disco para gravações subsequentes da coleção atual, o espaço em disco reservado é usado preferencialmente para gravações subsequentes da coleção. Para liberar o espaço em disco, execute o comando compact. (Observação: este comando bloqueia serviços normais e é desabilitado por padrão.)