Configurações de computação e armazenamento para clusters vCore do Azure Cosmos DB for MongoDB
APLICA-SE AO: 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 em seu cluster. O armazenamento é usado para os arquivos de banco de dados, os logs de transações e os logs do servidor MySQL. Você pode selecionar as configurações de computação e armazenamento de forma independente. Os valores de computação e armazenamento selecionados se aplicam a cada fragmento no cluster.
Segurança no Azure Cosmos DB for MongoDB vCore
A quantidade total de RAM em um único nó baseia-se no número selecionado de vCores.
Nível do cluster | vCores | Um fragmento, GiB RAM |
---|---|---|
M25 | 2 (com capacidade de intermitência) | 8 |
M30 | 2 | 8 |
M40 | 4 | 16 |
M50 | 8 | 32 |
M60 | 16 | 64 |
M80 | 32 | 128 |
M200 | 64 | 256 |
Armazenamento na vCore do Azure Cosmos DB for MongoDB
A quantidade total de armazenamento que você provisiona também define a capacidade disponível para o nó de camada básica.
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 |
2\.048 | 7\.500 |
4.095 | 7\.500 |
8\.192 | 16.000 |
16.384 | 18.000 |
32.767 | 20,000 |
† IOPS máximo com bursting de disco livre. O armazenamento de até 512 GiB inclusivo vem com a intermitência de disco livre habilitada.
IOPS máximo 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 em um nó. Selecione a configuração de computação do cluster para utilizar totalmente o IOPS no armazenamento selecionado.
Tamanho de armazenamento | IOPS de armazenamento, até | Nível mínimo de computação | Mínimo de vCores |
---|---|---|---|
Até 0.5 TiB | 3.500† | M30 | 2 vCores |
1 TiB | 5\.000 | M40 | 4 vCores |
2 TiB | 7.500 | M50 | 8 vCores |
4 TiB | 7\.500 | 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. O armazenamento de até 512 GiB inclusivo vem com a intermitência de disco livre habilitada.
Explicando de outra forma, se você precisar de 8 TiB de armazenamento por nó ou mais, selecione 16 vCores ou mais para a configuração de computação do nó. Isso permitiria maximizar o uso de IOPS fornecido pelo armazenamento selecionado.
Considerações sobre computação e armazenamento
Considerações sobre o conjunto de trabalho e a memória
No Azure Cosmos DB for MongoDB vCore, o conjunto de trabalho refere-se à parte dos dados que são acessados com frequência e usados por seus aplicativos. Isso inclui os dados e os índices que são lidos ou gravados regularmente durante as operações típicas do aplicativo. O conceito de um conjunto de trabalho é importante para otimização de desempenho porque o MongoDB, como muitos bancos de dados, tem o melhor desempenho quando o conjunto de trabalho se encaixa na RAM.
Para definir e entender o conjunto de trabalho do 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 nas operações de consulta também fazem parte do conjunto de trabalho porque precisam ser carregados na memória para garantir o acesso rápido.
- Padrões de uso do aplicativo: analisar os padrões de uso do 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 operações de E/S de disco mais lentas, melhorando assim o desempenho do banco de dados do MongoDB. Se você descobrir que seu conjunto de trabalho excede a RAM disponível, considere otimizar seu modelo de dados, adicionar mais RAM ou usar a fragmentação para distribuir os dados em vários nós.
Como escolher a configuração ideal para uma carga de trabalho
Determinar a configuração de computação e armazenamento correta para a carga de trabalho da vCore do Azure Cosmos DB for MongoDB envolve a avaliação de vários fatores relacionados aos requisitos e aos padrões de uso do aplicativo. As principais etapas e considerações para determinar a configuração ideal incluem:
Entenda sua carga de trabalho
- Volume de dados: estime o tamanho total dos dados, incluindo índices.
- Taxa de leitura/gravação: determine a taxa de operações de leitura para 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.
Monitorar o desempenho atual
- Utilização de recursos: use ferramentas de monitoramento para controlar a CPU, a memória, a E/S do disco e o uso da rede antes de mover sua carga de trabalho para o Azure e monitorar as métricas depois de começar a executar a carga de trabalho do MongoDB em um cluster da vCore do Azure Cosmos DB for MongoDB.
- Métricas de desempenho: monitore as principais métricas de desempenho, como latência, taxa de transferência e taxas de ocorrência de cache.
- Gargalos: identifique os gargalos de desempenho existentes, como alto uso de CPU, pressão de memória ou E/S de disco lento.
Estime os requisitos de recursos
- Memória: verifique se o conjunto de trabalho (dados e índices acessados 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 seu modelo de dados.
- CPU: escolha uma configuração de CPU que possa lidar com os requisitos de carga e simultaneidade da consulta. Cargas de trabalho com uso intensivo de CPU podem exigir mais núcleos. Use a métrica "porcentagem da CPU" com a agregação "Máx" no cluster da vCore do Azure Cosmos DB for MongoDB para ver padrões históricos de uso de computação.
- IOPS de armazenamento: selecione o armazenamento com IOPS suficiente para lidar com suas operações de leitura e gravação. Use a métrica "IOPS"com a agregação '"Máx" no cluster para ver o uso histórico de IOPS de armazenamento.
- Rede: verifique a 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. Verifique se você configurou o host para seu aplicativo MongoDB para dar suporte a tecnologias de rede aceleradas, como SR-IOV.
Dimensione adequadamente
- Dimensionamento vertical: dimensionar a computação/RAM para cima e para baixo e dimensionar o armazenamento verticalmente.
- Computação: aumente a vCore / RAM em um cluster se sua carga de trabalho exigir aumento temporário ou geralmente estiver cruzando mais de 70% da utilização da CPU por períodos prolongados.
- Verifique se você tem a retenção de dados apropriada no banco de dados da vCore do Azure Cosmos DB for 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, pois 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 da vCore do Azure Cosmos DB for MongoDB para obter ganhos de desempenho e melhor gerenciamento de capacidade à medida que sua carga de trabalho aumenta. Isso é especialmente útil para grandes conjuntos de dados (mais de 2 a 4 TiB) e aplicativos de alta taxa de transferência.
- Dimensionamento vertical: dimensionar a computação/RAM para cima e para baixo e dimensionar o armazenamento verticalmente.
Teste e itere
- Benchmarking: execute a medição para as consultas usadas com mais frequência com configurações diferentes para determinar o impacto no desempenho. Use as métricas de CPU/RAM e IOPS e o 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 a implantação da vCore do Azure Cosmos DB for MongoDB e ajuste os recursos conforme necessário com base na alteração de cargas de trabalho e padrões de uso.
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 sobre o 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 as considerações sobre o tamanho do armazenamento na vCore do Azure Cosmos DB for MongoDB:
Estime o tamanho dos dados:
- Calcule o tamanho esperado dos dados da vCore do Azure Cosmos DB for MongoDB. Considere:
- Tamanho dos dados atuais: se estiver migrando de um banco de dados existente.
- Taxa de crescimento: estime quantos dados serão adicionados ao longo do tempo.
- Tamanho e estrutura do documento: entenda o esquema de dados e os tamanhos do documento, pois eles afetam a eficiência do armazenamento.
- Calcule o tamanho esperado dos dados da vCore do Azure Cosmos DB for MongoDB. Considere:
Fator em índices:
- A vCore do Azure Cosmos DB for MongoDB usa índices para obter um consulta eficiente. 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 o desempenho:
- O desempenho do disco afeta as operações de 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 que são enviadas para discos de armazenamento em um segundo. O tamanho de armazenamento maior vem com mais IOPS. Verifique a taxa de transferência adequada para operações de leitura/gravação. Use a métrica "IOPS"com a agregação "Máx" para monitorar IOPS usada em seu cluster.
- Latência: é o tempo necessário para um aplicativo receber uma solicitação individual, enviá-la aos discos de armazenamento e enviar a resposta ao cliente. Essa é uma medida crítica do desempenho de um aplicativo, além da IOPS e da taxa de transferência. A latência é definida em grande parte pelo tipo de armazenamento usado e pela configuração de armazenamento. Em um serviço gerenciado como o Azure Cosmos DB for 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 de banco de dados, especialmente para cargas de trabalho que não podem ajustar seu conjunto de trabalho à RAM. Considere:
Crescimento e escalabilidade futuros:
- Planeje as necessidades futuras de crescimento e escalabilidade de dados.
- Aloque mais espaço em disco além das necessidades atuais para acomodar o crescimento sem expansões de armazenamento frequentes.
Cálculo de exemplo:
- Suponha que o tamanho inicial dos dados seja de 500 GiB.
- Com os índices, pode crescer para 700 GiB.
- Se você prever dobrar os dados em dois anos, planeje 1.4 TiB (700 GiB * 2).
- Adicione um buffer para sobrecarga, crescimento e necessidades operacionais.
- Talvez você queira começar com um armazenamento de 1 TiB hoje e dimensioná-lo para 2 TiB depois que seu tamanho crescer mais de 800 GiB.
Decidir sobre o tamanho do armazenamento envolve uma combinação de estimativa das necessidades de dados atuais e futuras, considerando a indexação e a compactação e a garantia de desempenho e escalabilidade adequados. O monitoramento e o ajuste regulares com base nas tendências reais de uso e crescimento também são cruciais para manter o desempenho ideal do MongoDB.