Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Solucionar problemas de alta utilização de IOPS em uma instância

Última atualização: Jun 26, 2026

Quando a utilização de operações de entrada/saída por segundo (IOPS) atinge ou se aproxima de 100% em uma instância do ApsaraDB for MongoDB, a instância pode responder lentamente ou ficar indisponível. Este tópico explica como verificar a utilização de IOPS e resolver problemas de alta utilização de IOPS.

Informações gerais

Para evitar que hosts concorram por recursos de I/O, a maioria dos provedores de banco de dados em nuvem utiliza técnicas como control groups (cgroups) para isolar recursos de I/O e limitar o IOPS. O limite máximo de IOPS varia de acordo com as especificações da instância.

Limitações de monitoramento

As métricas IOPS Usage e IOPS Usage (%) não podem ser exibidas no console do ApsaraDB for MongoDB para os seguintes tipos de instância:

  • Instâncias standalone

  • Instâncias de replica set que executam MongoDB 4.2 e usam discos em nuvem

  • Instâncias de sharded cluster que executam MongoDB 4.2 e usam discos em nuvem

Nessas instâncias, as duas métricas aparecem como 0 na página Monitoring Data. O valor 0 não reflete o uso real de IOPS.

Verificar a utilização de IOPS

Use um dos seguintes métodos:

Causas comuns

A alta utilização de IOPS geralmente é causada por um dos seguintes fatores:

  • Memória insuficiente: um cache maior armazena mais dados ativos (hot data), reduzindo os recursos de I/O em disco necessários e diminuindo a probabilidade de gargalos de I/O. Um cache menor armazena menos dados ativos. O sistema descarrega páginas sujas para o disco com mais frequência, aumentando a pressão de I/O e elevando a probabilidade de gargalos.

  • Problemas de parâmetros ou configuração: as configurações incorretas mais comuns incluem atualizações frequentes de logs de journal ou logs de runtime, um Write Concern configurado incorretamente ou operações moveChunk inválidas em uma instância de sharded cluster.

Solucionar o problema imediato

Execute as seguintes ações para reduzir o IOPS imediatamente:

Controle threads simultâneas de escrita e leitura

O MongoDB é uma aplicação multi-threaded. Volumes elevados de escritas simultâneas e consultas complexas podem causar gargalos de IOPS e introduzir lag de replicação contínua nos nós secundários. Para escalar horizontalmente o throughput de escrita, faça upgrade para uma instância de sharded cluster, que distribui os dados entre os shards.

Agende operações em lote nos horários de menor tráfego

Escritas em lote regulares ou persistência massiva de dados podem elevar o IOPS ao limite máximo da instância. Se as cargas de escrita de pico excederem a capacidade atual da instância, faça upgrade das configurações da instância para atender aos requisitos de escrita de pico. Para suavizar o padrão de escrita e evitar picos simultâneos, adicione um offset de timestamp aleatório a cada operação de escrita em lote.

IOPS peak data chart

Agende operações de O&M nos horários de menor tráfego

As tarefas de operações e manutenção (O&M) que afetam significativamente o desempenho de I/O incluem escritas, atualizações ou exclusões em lote, adição de índices, execução de operações compact em coleções e exportações de dados em lote. Execute essas tarefas nos horários de menor tráfego para evitar concorrência com as cargas de trabalho de produção.

Implementar uma solução de longo prazo

Aborde a causa raiz com as seguintes estratégias:

Dimensione corretamente sua instância

Dimensione sua instância de modo que a utilização de pico diário de CPU e IOPS permaneça abaixo de 50%. A proporção entre dados ativos e o tamanho do cache é difícil de prever antecipadamente.

Otimize os índices

Varreduras completas de tabela e índices mal selecionados são causas comuns de alta utilização de IOPS. As causas específicas incluem:

  • Consultas que varrem coleções inteiras consomem grandes volumes de I/O.

  • Índices superdimensionados reduzem a quantidade de dados ativos que o cache do WiredTiger consegue armazenar.

  • Cada operação de escrita requer mais de uma operação de I/O para atualizar os índices associados.

Crie índices adequados para reduzir o I/O desnecessário e manter no cache os dados acessados com frequência.