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:
- Dados acessados com frequência: esses dados incluem documentos que seu aplicativo lê ou atualiza regularmente.
- Í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.
- 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:
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.
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.
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.
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.
- Dimensionamento vertical: dimensione a computação/RAM para cima e para baixo e aumente a escala do armazenamento.
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:
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.
- Calcule o tamanho esperado do seu Azure Cosmos DB para dados vCore do MongoDB. Considere:
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.
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.
- 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:
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.
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.