Partilhar via


Configurações de computação e armazenamento para clusters vCore do Azure Cosmos DB para MongoDB

APLICA-SE A: MongoDB vCore

Os recursos de computação são fornecidos como vCores, que representam a CPU lógica do hardware subjacente. O tamanho do armazenamento para provisionamento refere-se à capacidade disponível para os fragmentos no cluster. O armazenamento é usado para arquivos de banco de dados, arquivos temporários, logs de transações e logs do servidor de banco de dados. Você pode selecionar as configurações de computação e armazenamento independentemente. Os valores de computação e armazenamento selecionados aplicam-se a cada fragmento no cluster.

Computação no Azure Cosmos DB para MongoDB vCore

A quantidade total de RAM em um único fragmento é baseada no número selecionado de vCores.

Camada de cluster vCores Um fragmento, GiB RAM
M25 2 (estourável) 8
M30 2 8
M40 4 16
M50 8 32
M60 16 64
M80 32 128
M200 64 256

Armazenamento no Azure Cosmos DB para MongoDB vCore

A quantidade total de armazenamento provisionada também define a capacidade de E/S disponível para cada fragmento no cluster.

Tamanho de armazenamento, GiB IOPS máximo
32 3,500†
64 3,500†
128 3,500†
256 3,500†
512 3,500†
1,024 5.000
2048 7500
4,095 7500
8,192 16 000
16,384 18 000
32 767 20.000

† IOPS máximo com bursting de disco livre. Armazenamento de até 512 GiB, inclusive, vem com bursting de disco livre habilitado.

Maximizando IOPS para sua configuração de computação/armazenamento

Cada configuração de computação tem um limite de IOPS que depende do número de vCores. Certifique-se de selecionar a configuração de computação para seu cluster para utilizar totalmente IOPS no armazenamento selecionado.

Tamanho de armazenamento IOPS de armazenamento, até Camada de computação mínima Min vCores
Até 0,5 TiB 3,500† M30 2 vCores
1 TiB 5.000 M40 4 vCores
2 TiB 7500 M50 8 vCores
4 TiB 7500 M50 8 vCores
8 TiB 16 000 M60 16 vCores
16 TiB 18 000 M60 16 vCores
32 TiB 20.000 M60 16 vCores

† IOPS máximo com bursting de disco livre. Armazenamento de até 512 GiB, inclusive, vem com bursting de disco livre habilitado.

Por exemplo, se você precisar de 8 TiB de armazenamento por estilhaço ou mais, certifique-se de selecionar 16 vCores ou mais para a configuração de computação do nó. Essa seleção permitiria maximizar o uso de IOPS fornecido pelo armazenamento selecionado.

Considerações para computação e armazenamento

Considerações sobre conjunto de trabalho e memória

No Azure Cosmos DB para MongoDB vCore, o conjunto de trabalho refere-se à parte dos seus dados que é frequentemente acessada e usada por seus aplicativos. Ele inclui os dados e os índices que são regularmente lidos ou gravados durante as operações típicas do aplicativo. O conceito de um conjunto de trabalho é importante para a otimização de desempenho porque o MongoDB, como muitos bancos de dados, funciona melhor quando o conjunto de trabalho se encaixa na RAM.

Para definir e entender seu conjunto de trabalho de banco de dados MongoDB, considere os seguintes componentes:

  1. Dados acessados com frequência: esses dados incluem documentos que seu aplicativo lê ou atualiza regularmente.
  2. Índices: Os índices usados em operações de consulta também fazem parte do conjunto de trabalho porque precisam ser carregados na memória para garantir acesso rápido.
  3. Padrões de uso do aplicativo: analisar os padrões de uso do seu aplicativo pode ajudar a identificar quais partes dos dados são acessadas com mais frequência.

Ao manter o conjunto de trabalho na RAM, você pode minimizar as operações de E/S de disco mais lentas, melhorando assim o desempenho do seu banco de dados MongoDB. Se você achar que seu conjunto de trabalho excede a RAM disponível, considere otimizar seu modelo de dados, adicionar mais RAM ou usar fragmentação para distribuir os dados entre vários nós.

Escolhendo a configuração ideal para uma carga de trabalho

Determinar a configuração correta de computação e armazenamento para sua carga de trabalho vCore do Azure Cosmos DB for MongoDB envolve a avaliação de vários fatores relacionados aos requisitos e padrões de uso do seu aplicativo. As principais etapas e considerações para determinar a configuração ideal incluem:

  1. Compreender a sua carga de trabalho

    • Volume de dados: estime o tamanho total dos seus dados, incluindo índices.
    • Relação leitura/gravação: determine a proporção entre operações de leitura e operações de gravação.
    • Padrões de consulta: analise os tipos de consultas que seu aplicativo executa. Por exemplo, leituras simples, agregações complexas.
    • Simultaneidade: avalie o número de operações simultâneas que seu banco de dados precisa manipular.
  2. Monitore o desempenho atual

    • Utilização de recursos: use ferramentas de monitoramento para rastrear CPU, memória, E/S de disco e uso de rede antes de mover sua carga de trabalho para o Azure e métricas de monitoramento quando começar a executar sua carga de trabalho do MongoDB em um cluster vCore do Azure Cosmos DB para MongoDB.
    • Métricas de desempenho: monitore as principais métricas de desempenho, como latência, taxa de transferência e taxas de acertos do cache.
    • Gargalos: identifique quaisquer gargalos de desempenho existentes, como alto uso da CPU, pressão de memória ou E/S de disco lenta.
  3. Estimar as necessidades de recursos

    • Memória: Certifique-se de que o seu conjunto de trabalho (dados e índices acedidos com frequência) se encaixa na RAM. Se o tamanho do conjunto de trabalho exceder a memória disponível, considere adicionar mais RAM ou otimizar o modelo de dados.
    • CPU: Escolha uma configuração de CPU que possa lidar com a carga de consulta e os requisitos de simultaneidade. Cargas de trabalho com uso intensivo de CPU podem exigir mais núcleos. Use a métrica 'Porcentagem de CPU' com agregação 'Max' em seu cluster vCore do Azure Cosmos DB para MongoDB para ver padrões históricos de uso de computação.
    • IOPS de armazenamento: selecione o armazenamento com IOPS suficientes para lidar com suas operações de leitura e gravação. Use a métrica 'IOPS' com agregação 'Max' no cluster para ver o histórico de uso de IOPS de armazenamento.
    • Rede: Garanta largura de banda de rede adequada para lidar com a transferência de dados entre seu aplicativo e o banco de dados, especialmente para configurações distribuídas. Certifique-se de configurar o host para seu aplicativo MongoDB para oferecer suporte a tecnologias de rede aceleradas, como SR-IOV.
  4. Dimensionar adequadamente

    • Dimensionamento vertical: dimensione a computação/RAM para cima e para baixo e aumente a escala do armazenamento.
      • Computação: aumente o vCore / RAM em um cluster se sua carga de trabalho exigir um aumento temporário ou estiver frequentemente ultrapassando 70% da utilização da CPU por períodos prolongados.
      • Verifique se você tem retenção de dados apropriada em seu banco de dados vCore do Azure Cosmos DB para MongoDB. A retenção permite evitar o uso desnecessário do armazenamento. Monitore o uso do armazenamento definindo alertas nas métricas 'Porcentagem de armazenamento' e/ou 'Armazenamento usado' com agregação 'Máx'. Considere aumentar o armazenamento à medida que o tamanho da carga de trabalho ultrapassa 70% de uso.
    • Dimensionamento horizontal: considere usar vários fragmentos para seu cluster para distribuir seus dados em vários nós vCore do Azure Cosmos DB para MongoDB para obter ganhos de desempenho e melhor gerenciamento de capacidade à medida que sua carga de trabalho cresce. Isso é especialmente útil para grandes conjuntos de dados (acima de 2-4 TiB) e aplicativos de alto rendimento.
  5. Testar e iterar

    • Benchmarking: Realize medições para as consultas usadas com mais frequência com diferentes configurações para determinar o impacto no desempenho. Use métricas de CPU/RAM e IOPS e benchmarking no nível do aplicativo.
    • Teste de carga: realize testes de carga para simular cargas de trabalho de produção e validar o desempenho da configuração escolhida.
    • Monitoramento contínuo: monitore continuamente sua implantação do Azure Cosmos DB para MongoDB vCore e ajuste os recursos conforme necessário com base em cargas de trabalho e padrões de uso em mudança.

Avaliando sistematicamente esses fatores e monitorando e ajustando continuamente sua configuração, você pode garantir que sua implantação do MongoDB seja bem otimizada para sua carga de trabalho específica.

Considerações de armazenamento

Decidir sobre o tamanho de armazenamento apropriado para sua carga de trabalho envolve várias considerações para garantir o desempenho e a escalabilidade ideais. Aqui estão considerações para o tamanho do armazenamento no Azure Cosmos DB para MongoDB vCore:

  1. Tamanho estimado dos dados:

    • Calcule o tamanho esperado do seu Azure Cosmos DB para dados vCore do MongoDB. Considere:
      • Tamanho atual dos dados: Se estiver migrando de um banco de dados existente.
      • Taxa de crescimento: Estime a quantidade de dados que serão adicionados ao longo do tempo.
      • Tamanho e estrutura do documento: compreenda o esquema de dados e os tamanhos dos documentos, pois eles afetam a eficiência do armazenamento.
  2. Fator nos índices:

    • O Azure Cosmos DB para MongoDB vCore usa índices para consultas eficientes. Os índices consomem espaço extra em disco.
    • Estimar o tamanho dos índices com base em:
      • Número de índices.
      • Tamanho dos campos indexados.
  3. Considerações sobre desempenho:

    • O desempenho do disco afeta as operações do banco de dados, especialmente para cargas de trabalho que não podem ajustar seu conjunto de trabalho à RAM. Considere:
      • Taxa de transferência de E/S: IOPS, ou Operações de Entrada/Saída por Segundo, é o número de solicitações enviadas aos discos de armazenamento em um segundo. O tamanho de armazenamento maior vem com mais IOPS. Garanta uma taxa de transferência adequada para operações de leitura/gravação. Use a métrica 'IOPS' com agregação 'Max' para monitorar IOPS usadas em seu cluster.
      • Latência: latência é o tempo que um aplicativo leva para receber uma única solicitação, enviá-la para discos de armazenamento e enviar a resposta para o cliente. A latência é uma medida crítica do desempenho de um aplicativo, além de IOPS e taxa de transferência. A latência é amplamente definida pelo tipo de armazenamento usado e configuração de armazenamento. Em um serviço gerenciado como o Azure Cosmos DB para MongoDB, o armazenamento rápido, como discos SSD Premium, é usado com configurações otimizadas para reduzir a latência.
  4. Crescimento e escalabilidade futuros:

    • Planeje o crescimento futuro de dados e as necessidades de escalabilidade.
    • Aloque mais espaço em disco além das necessidades atuais para acomodar o crescimento sem expansões frequentes de armazenamento.
  5. Exemplo de cálculo:

    • Suponha que o tamanho inicial dos dados seja de 500 GiB.
    • Com os índices, pode crescer para 700 GiB.
    • Se prevê duplicar os dados em dois anos, planeie 1,4 TiB (700 GiB * 2).
    • Adicione um buffer para despesas gerais, crescimento e necessidades operacionais.
    • Você pode querer começar com armazenamento de 1 TiB hoje e escaloná-lo para 2 TiB quando seu tamanho crescer mais de 800 GiB.

A decisão sobre o tamanho do armazenamento envolve uma combinação de estimar as necessidades de dados atuais e futuras, considerar a indexação e a compactação e garantir o desempenho e a escalabilidade adequados. O monitoramento e o ajuste regulares com base no uso real e nas tendências de crescimento também são cruciais para manter o desempenho ideal do MongoDB.

Próximos passos