Ir para o conteúdo

Por que minha tabela sob demanda do DynamoDB está sofrendo controle de utilização?

4 minuto de leitura
0

Minha tabela sob demanda do Amazon DynamoDB está sofrendo controle de utilização, e eu não sei por quê.

Resolução

As tabelas do DynamoDB que usam o modo de capacidade sob demanda se adaptam automaticamente ao volume de tráfego da sua aplicação. No entanto, os casos a seguir podem fazer com que suas tabelas sob demanda do DynamoDB fiquem limitadas.

O tráfego é mais do que o dobro do pico anterior

As tabelas sob demanda do DynamoDB podem sofrer controle de utilização quando o tráfego excede o dobro do pico de throughput anterior em um período de 30 minutos.

Para resolver esse problema, escale gradualmente seu tráfego em pelo menos 30 minutos antes de atingir o dobro do pico anterior. Para monitorar o throughput da sua tabela, use as métricas ConsumedReadCapacityUnits e ConsumedWriteCapacityUnits no Amazon CloudWatch. Para monitorar o controle de utilização sob demanda, use ReadMaxOnDemandThroughputThrottleEvents e WriteMaxOnDemandThroughputThrottleEvents.

Para novas tabelas sob demanda, é possível direcionar imediatamente até 4.000 unidades de solicitação de gravação, 12.000 unidades de solicitação de leitura ou uma combinação linear de ambas. Para eventos planejados ou de pico, use um throughput quente para escalar a capacidade da sua tabela de acordo com o uso esperado.

Se você alternar uma tabela para o modo de capacidade sob demanda, o pico anterior será um dos seguintes valores:

  • As novas tabelas começam com 4.000 unidades de capacidade de gravação (WCU) e 12.000 unidades de capacidade de leitura (RCU).
  • Se você provisionou sua tabela acima do valor inicial, ela retém a maior capacidade.
  • A capacidade inicial pode ser maior em padrões de uso sustentado.

O tráfego excede o throughput máximo para cada partição

Cada partição na tabela pode atender até 1.000 unidades de solicitação de gravação, 3.000 unidades de solicitação de leitura ou uma combinação linear de ambas. Se o tráfego para uma partição exceder essa cota, a partição poderá sofrer controle de utilização.

Para solucionar esse problema, realize as etapas a seguir:

  1. Use o CloudWatch Contributor Insights para DynamoDB para identificar as chaves que mais frequentemente são acessadas e sofrem controle de utilização na sua tabela.
  2. Use métricas avançadas para verificar se os eventos de controle de partição são a causa.
  3. Use o fragmento de gravação para distribuir uniformemente as solicitações em suas partições.
  4. Otimize suas novas tentativas de erro e sua estratégia de recuo exponencial.

O tráfego excede a cota da sua conta da AWS para cada tabela

Por padrão, as tabelas sob demanda têm cotas em nível de conta de 40.000 WCU e 40.000 RCU para cada tabela. Se o tráfego para uma tabela exceder as cotas de throughput, a tabela poderá sofrer controle de utilização.

Para solucionar esse problema, realize as etapas a seguir:

  1. No CloudWatch, compare ConsumedReadCapacityUnits e ConsumedWriteCapacityUnits com suas cotas atuais.
  2. Solicite um aumento de cota em nível de conta para as unidades de capacidade de leitura e gravação em nível de tabela.

O GSI da tabela experimenta controle de utilização

Se sua tabela do DynamoDB tiver um GSI que está com controle de utilização, tal controle pode criar um controle de utilização de contrapressão na tabela de base. Para mais informações, consulte Esclarecimentos sobre o controle de utilização de gravação e a contrapressão do índice secundário global (GSI) no DynamoDB e Como usar índices secundários globais no DynamoDB.

O tráfego excede o throughput máximo configurado

Se você configurou cotas máximas de throughput para sua tabela sob demanda, receberá um erro de "ThrottlingException" ao exceder suas cotas de throughput.

Com base no seu caso de uso, execute uma das seguintes ações:

Para monitorar o throughput máximo que você configurou para uma tabela ou GSI, use as métricas OnDemandMaxReadRequestUnits e OnDemandMaxWriteRequestUnits no CloudWatch.

Informações relacionadas

Guia de resolução de controle de utilização do DynamoDB

Como escolho uma boa chave primária para minha tabela do DynamoDB?

Por que minhas métricas no DynamoDB são diferentes das CloudWatch Metrics?

Cotas no DynamoDB

Introdução ao throughput máximo configurável para o DynamoDB sob demanda

AWS OFICIALAtualizada há 3 meses