Guia de dimensionamento de clusters do DAX - Amazon DynamoDB

Guia de dimensionamento de clusters do DAX

Este guia fornece recomendações para ajudar você a escolher um tamanho de cluster e um tipo de nó do Amazon DynamoDB Accelerator (DAX) para sua aplicação. Essas instruções fornecem orientações ao longo das etapas de estimar o tráfego do DAX da sua aplicação, selecionar uma configuração de cluster e testá-la.

Se você já tem um cluster do DAX e deseja avaliar se ele tem o número e o tamanho apropriados de nós, consulte Escalar um cluster do DAX.

Visão geral

É importante dimensionar o cluster do DAX adequadamente para sua workload, quer você esteja criando um novo cluster ou mantendo um cluster existente. Conforme o tempo passa e a workload da sua aplicação muda, você deve revisar periodicamente suas decisões de escalabilidade para garantir que elas ainda sejam adequadas.

Normalmente o processo segue estas etapas:

  1. Estimativa do tráfego. Nesta etapa, você fará previsões sobre o volume de tráfego que a aplicação enviará ao DAX, a natureza do tráfego (operações de leitura versus gravação) e a taxa de acertos do cache esperada.

  2. Testes de carga Nesta etapa, você cria um cluster e envia tráfego para ele espelhando suas estimativas da etapa anterior. Repita essa etapa até encontrar uma configuração de cluster adequada.

  3. Monitoramento da produção. Enquanto a aplicação estiver usando o DAX na produção, você deverá monitorar o cluster para validar continuamente se ele ainda está dimensionado corretamente conforme a workload muda ao longo do tempo.

Estimar tráfego

Existem três fatores principais que caracterizam uma workload típica do DAX:

Estimar taxa de acertos de cache

Se você já tem um cluster do DAX, poderá usar as métricas do Amazon CloudWatch ItemCacheHits e ItemCacheMissespara determinar a taxa de acertos do cache. A taxa de acertos do cache é igual a ItemCacheHits/(ItemCacheHits + ItemCacheMisses). Se sua workload incluir operações Query ou Scan, você também deverá examinar as métricas QueryCacheHits, QueryCacheMisses, ScanCacheHits e ScanCacheMisses. As taxas de acertos do cache variam de acordo com a aplicação e são fortemente influenciadas pela configuração de vida útil (TTL) do cluster. As taxas de acertos típicas de aplicações que usam o DAX são variam de 85 a 95%.

Estimar unidades de capacidade de leitura e gravação

Se você já tiver tabelas do DynamoDB para sua aplicação, consulte as métricas do CloudWatchConsumedReadCapacityUnits e ConsumedWriteCapacityUnits. Use a estatística Sum e divida pelo número de segundos no período.

Se você também já tiver um cluster do DAX, lembre-se de que a métrica ConsumedReadCapacityUnits do DynamoDB contabiliza apenas erros do cache. Portanto, para ter uma ideia das unidades de capacidade de leitura por segundo tratadas pelo cluster do DAX, divida o número pela taxa de erro do cache (ou seja, 1 - taxa de acertos do cache).

Se você ainda não tiver uma tabela do DynamoDB, consulte a documentação sobre unidades de capacidade de leitura e de gravação para estimar o tráfego com base na taxa de solicitação prevista da aplicação, nos itens acessados por solicitação e no tamanho do item.

Ao fazer estimativas de tráfego, considere o crescimento futuro e os picos esperados e inesperados em seu planejamento a fim de garantir que o cluster tenha espaço suficiente para aumentos do tráfego.

Testes de carga

A próxima etapa depois de estimar o tráfego é testar a configuração do cluster sob carga.

  1. Para o teste inicial de carga, recomendamos que você comece com o tipo de nó dax.r4.large, a performance fixa de menor custo e o tipo de nó otimizado para memória.

  2. Um cluster tolerante a falhas requer pelo menos três nós, distribuídos por três zonas de disponibilidade. Nesse caso, se uma zona de disponibilidade ficar indisponível, o número efetivo de zonas de disponibilidade será reduzido em um terço. Para o teste inicial de carga, recomendamos começar com um cluster de dois nós, que simula a falha de uma zona de disponibilidade em um cluster de três nós.

  3. Promova tráfego contínuo (conforme estimado na etapa anterior) para o cluster de teste durante o teste de carga.

  4. Monitore a performance do cluster durante o teste de carga.

O ideal é que o perfil do tráfego que você promove durante o teste de carga seja o mais semelhante possível ao tráfego real da aplicação. Isso inclui a distribuição de operações (p. ex., 70 por cento de GetItem, 25 por cento de Query e 5 por cento de PutItem), a taxa de solicitação para cada operação, o número de itens acessados por solicitação e a distribuição de tamanhos dos itens. Para obter uma taxa de acerto do cache semelhante à taxa de acerto de cache esperada da sua aplicação, preste muita atenção à distribuição de chaves no tráfego de teste.

nota

Tenha cuidado ao carregar testes de tipos de nó T2 (dax.t2.small e dax.t2.medium). Os tipos de nó T2 fornecem performance de CPU com capacidade de intermitência que varia ao longo do tempo, dependendo do saldo de crédito da CPU do nó. Um cluster do DAX em execução em nós T2 pode parecer estar funcionando normalmente, mas se algum nó estiver com intermitência acima da performance de referência da instância, o nó estará gastando seu saldo de créditos de CPU acumulados. Quando o saldo de crédito está baixo, a performance é gradualmente reduzida para o nível de desempenho de linha de base.

Monitore o cluster do DAX durante o teste de carga para determinar se o tipo de nó que você está usando para o teste de carga é o tipo de nó certo para você. Além disso, durante um teste de carga, você deve monitorar a taxa de solicitações e a taxa de acertos do cache para garantir que sua infraestrutura de teste esteja realmente direcionando a quantidade de tráfego planejada.

Você deve prestar atenção ao consumo de bytes de rede do tipo de instância de cluster selecionado. Exceder a largura de banda de linha de base disponível para uma instância do Amazon EC2 é um indício de que o cluster pode não sustentar a workload da aplicação e precisa ser escalado.

Se o teste de carga indicar que a configuração do cluster selecionada não pode sustentar a workload da aplicação, você deve mudar para um tipo de nó maior, especialmente se perceber alta utilização da CPU no nó primário no cluster, taxas de remoção elevadas ou alta utilização de memória cache. Se as taxas de acerto forem consistentemente altas e a proporção do tráfego de leitura para gravação for alta, convém considerar a adição de mais nós ao cluster. Consulte Escalar um cluster do DAX para obter orientações adicionais sobre quando usar um tipo de nó maior (escalabilidade vertical) ou adicionar mais nós (escalabilidade horizontal).

Você deve repetir o teste de carga depois de fazer alterações na configuração do cluster.