Compartilhar via


Configurações de computação e armazenamento para o Azure DocumentDB

Os recursos de computação do Azure DocumentDB 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 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 de forma independente. Os valores de computação e armazenamento selecionados se aplicam a cada fragmento no cluster.

Computação no Azure DocumentDB

A quantidade total de RAM em um único fragmento baseia-se no número selecionado de vCores.

Nível do cluster vCores Um fragmento, GiB RAM
M10 1 (com capacidade de intermitência) 2
M20 2 (com capacidade de intermitência) 4
M25 2 (transbordável) 8
M30 2 8
M40 4 16
M50 8 32
M60 16 64
M80 32 128
M200 64 256

Armazenamento no Azure DocumentDB

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

Tamanho do 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 (operações de entrada/saída por segundo) com pico de disco livre. O armazenamento de até 512 GiB inclusivo vem com a intermitência de disco livre habilitada.

Maximizar o IOPS para sua configuração de computação e armazenamento

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

Tamanho de armazenamento IOPS de armazenamento, até Camada de computação mínima Mín vCores
Até 0,5 TiB 3,500† M30 2 vCores
1 TiB 5.000 M40 4 vCores
2 TiB (tebibyte) 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ó. Essa seleção permitiria maximizar o uso de IOPS fornecido pelo armazenamento selecionado.

Considerações sobre computação e armazenamento

Ao configurar o cluster do Azure DocumentDB, é importante entender como as opções de computação e armazenamento afetam o desempenho, o custo e a escalabilidade da carga de trabalho específica.

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

No Azure DocumentDB, 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 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:

  1. Dados acessados com frequência: esses dados incluem documentos que seu aplicativo lê ou atualiza regularmente.
  2. Í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.
  3. 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.

Mantendo 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 o conjunto de trabalho exceder a RAM disponível, considere otimizar seu modelo de dados, adicionar mais RAM ao cluster ou usar a fragmentação para distribuir dados entre vários nós.

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

Determinar a configuração de computação e armazenamento correta para sua carga de trabalho do Azure DocumentDB 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:

  1. Entender sua carga de trabalho

    • Volume de dados: estimar o tamanho total dos dados, incluindo índices.
    • Taxa de leitura/gravação: determine a taxa de operações de leitura com 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. 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 migrar sua carga de trabalho para o Azure. Depois de implantar sua carga de trabalho do MongoDB em um cluster do Azure DocumentDB, continue monitorando usando as métricas de monitoramento do Azure.
    • 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.
  3. Estimar 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 'Max' no cluster do Azure DocumentDB 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 'Max' 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.
  4. Dimensionar adequadamente

    • Dimensionamento vertical: dimensiona a computação/a RAM para cima e para baixo e dimensiona 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 do Azure DocumentDB. A retenção permite evitar o uso desnecessário do armazenamento. Monitore o uso do armazenamento ao definir alertas nas métricas 'Porcentagem de armazenamento' e/ou 'Armazenamento usado' com agregação 'Máxima'. Considere aumentar o armazenamento quando o tamanho da carga de trabalho ultrapassar 70% de utilização.
    • Dimensionamento horizontal: considere usar vários fragmentos para o cluster para distribuir seus dados em vários nós do Azure DocumentDB para obter ganhos de desempenho e melhor gerenciamento de capacidade à medida que sua carga de trabalho aumenta. Esse dimensionamento é especialmente útil para grandes conjuntos de dados (mais de 2 a 4 TiB) e aplicativos de alta taxa de transferência.
  5. Testar e iterar

    • Benchmarking: execute a medição para as consultas usadas com mais frequência com configurações diferentes para determinar o efeito sobre o 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 sua implantação do Azure DocumentDB 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 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 no Azure DocumentDB:

  1. Estimar o tamanho dos dados:

    • Calcule o tamanho esperado dos dados do Azure DocumentDB. Considere:
      • Tamanho dos dados atuais: Se estiver migrando de um banco de dados existente.
      • Taxa de crescimento: Estimar a quantidade de dados que 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 de armazenamento.
  2. Fator em índices:

    • O Azure DocumentDB usa índices para 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.
  3. 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. Utilize a métrica 'IOPS' com a agregação 'Max' para monitorar IOPS utilizados em seu cluster.
      • Latência: Latência é o tempo necessário para um aplicativo receber uma única solicitação, enviá-la para discos de armazenamento e enviar a resposta ao cliente. A latência é uma medida crítica do desempenho de um aplicativo, além de IOPS e taxa de transferência. O tipo de armazenamento usado e a configuração de armazenamento define em grande parte a latência. Em um serviço gerenciado como o Azure DocumentDB, o armazenamento rápido, como discos SSD Premium, é usado com configurações otimizadas para reduzir a latência.
  4. 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.
  5. Cálculo de exemplo:

    • Suponha que o tamanho inicial dos dados seja de 500 GiB.
    • Com os índices, o tamanho pode chegar a até 700 gibibytes.
    • 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 o armazenamento de 1 TiB hoje e dimensioná-lo para 2 TiB depois que seu tamanho aumentar 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.

O que é computação burstável?

A camada com capacidade de intermitência oferece uma solução inteligente adaptada para cargas de trabalho de banco de dados pequenas. Ao fornecer um desempenho mínimo da CPU durante períodos ociosos, esses clusters otimizam a utilização de recursos. No entanto, o verdadeiro valor está na capacidade de escala vertical até o potencial total da CPU em resposta ao aumento das demandas de tráfego ou carga de trabalho. Essa adaptabilidade fornece um desempenho de pico justamente quando necessário, ao mesmo tempo em que proporciona uma economia substancial de custos.

Ao reduzir o preço inicial do serviço, a Camada de Cluster Variável do Azure DocumentDB visa facilitar a integração e exploração dos usuários do Azure DocumentDB a preços reduzidos. Essa democratização do acesso capacita empresas de todos os tamanhos a aproveitar o poder do Azure DocumentDB sem gastar uma fortuna. Seja você uma startup, uma pequena empresa ou uma empresa, essa camada abre novas possibilidades de escalabilidade econômica.

Provisionar uma camada intermitível é tão simples quanto provisionar camadas regulares; você só precisa escolher "M10", "M20" ou "M25" na opção de camada de cluster. Aqui está um guia de início rápido que oferece instruções passo a passo sobre como configurar um cluster do Azure DocumentDB .