¿Por qué se está limitando mi tabla de Amazon DynamoDB?

6 minutos de lectura
0

Se están limitando las operaciones de lectura o escritura en mi tabla de Amazon DynamoDB. -o- Recibo ProvisionedThroughputExceededException cuando realizo una operación de lectura o escritura en mi tabla de DynamoDB.

Descripción breve

Estos son algunos de los problemas de limitación más comunes a los que puede enfrentarse:

  • La tabla de DynamoDB tiene la capacidad aprovisionada adecuada, pero la mayoría de las solicitudes se están limitando.
  • Ha activado AWS Application Auto Scaling para DynamoDB, pero su tabla de DynamoDB se está limitando.
  • La tabla de DynamoDB está en modo de capacidad bajo demanda, pero la tabla se está limitando.
  • Tiene una partición activa en la tabla.
  • El tráfico de su tabla supera las cuotas de rendimiento de su cuenta.

Resolución

Para obtener información sobre las métricas de DynamoDB que deben supervisarse durante los eventos de limitación, consulte Métricas y dimensiones de DynamoDB. Estas métricas pueden ayudarle a localizar las operaciones que crean solicitudes limitadas e identificar la causa de la limitación. Utilice una o más de las siguientes opciones de solución de problemas según su caso de uso.

La tabla de DynamoDB tiene la capacidad aprovisionada adecuada, pero la mayoría de las solicitudes se están limitando

DynamoDB informa acerca de las métricas a nivel de minutos a Amazon CloudWatch. Las métricas se calculan como la suma de un minuto y, a continuación, se promedian. Sin embargo, los límites de velocidad de DynamoDB se aplican por segundo. Por ejemplo, si aprovisionó 60 unidades de capacidad de escritura para la tabla de DynamoDB, puede realizar 3600 escrituras en un minuto. Sin embargo, procesar las 3600 solicitudes en un segundo y no recibir solicitudes durante el resto de ese minuto podría provocar una limitación. El número total de unidades de capacidad de lectura o de escritura por minuto puede ser inferior al rendimiento previsto para la tabla. Sin embargo, si toda la carga de trabajo se reduce en un par de segundos, es posible que las solicitudes se limiten.

Para resolver este problema, asegúrese de que la tabla tenga la capacidad suficiente para atender a su tráfico y vuelva a intentar las solicitudes limitadas mediante retraso exponencial. Si utiliza el SDK de AWS, esta lógica se implementa de forma predeterminada. Para obtener más información, consulte Reintentos ante errores y retroceso exponencial.

Nota: DynamoDB no comienza necesariamente a limitar la tabla cuando la capacidad consumida por segundo supera la capacidad aprovisionada. Con la función de capacidad de ráfaga, DynamoDB reserva una parte de la capacidad no utilizada para ráfagas posteriores de rendimiento a fin de gestionar los picos de uso.

Ha activado AWS Application Auto Scaling, pero su tabla sigue estando limitada

AWS Application Auto Scaling no es una solución adecuada para abordar los picos repentinos de tráfico con tablas de DynamoDB. Application Auto Scaling inicia un escalado ascendente solo cuando dos puntos de datos consecutivos de las unidades de capacidad consumidas superan el valor del objetivo de utilización configurado en un lapso de un minuto. Application Auto Scaling escala automáticamente la capacidad aprovisionada solo cuando la capacidad consumida supera el objetivo de utilización durante dos minutos seguidos. Además, se inicia un evento de escalado descendente cuando 15 puntos de datos consecutivos de la capacidad consumida en CloudWatch son inferiores al objetivo de utilización. Tras iniciar Application Auto Scaling, se invoca una llamada a la API UpdateTable que puede tardar un par de minutos en actualizar la capacidad aprovisionada para la tabla o el índice de DynamoDB. Application Auto Scaling requiere puntos de datos consecutivos con valores de objetivo de utilización más altos para escalar verticalmente la capacidad aprovisionada de la tabla de DynamoDB. Durante este período, se limitan las solicitudes que superen la capacidad aprovisionada de la tabla. Por lo tanto, no se recomienda utilizar Application Auto Scaling para gestionar cargas de trabajo con picos en DynamoDB y, en ese caso, podría plantearse cambiar al modo bajo demanda. Para obtener más información, consulte Administrar la capacidad de rendimiento automáticamente con DynamoDB Auto Scaling.

Su tabla usa el modo de capacidad bajo demanda, pero la tabla aún se está limitando

Cuando la tabla usa el modo de capacidad bajo demanda, la tabla no se acelera mientras se cumplan las siguientes condiciones:

  • El patrón de acceso se distribuye de manera uniforme entre las particiones para evitar problemas relacionados con la partición activa.
  • La tabla no supera el doble de su tráfico máximo anterior.

En el caso de las tablas bajo demanda, DynamoDB asigna automáticamente más capacidad a medida que aumenta el volumen de tráfico para garantizar que la carga de trabajo no se limite. Sin embargo, se puede producir una limitación si el volumen de tráfico es más del doble que el pico anterior en un lapso de 30 minutos. Para obtener más información, consulte Propiedades de escalado y tráfico máximo.

Tiene una partición activa en su tabla

En DynamoDB, una clave de partición que no tenga una cardinalidad alta puede provocar que muchas solicitudes se dirijan solo a unas pocas particiones y generen una partición activa. Una partición activa puede provocar una limitación si se superan los límites de 3000 RCU o 1 000 WCU (o una combinación de ambos) por segundo.

Para encontrar los elementos de su tabla más accesibles y con más restricciones, utilice Amazon CloudWatch Contributor Insights. Amazon CloudWatch Contributor Insights es una herramienta de diagnóstico que proporciona una vista resumida de las tendencias del tráfico de sus tablas de DynamoDB y le ayuda a identificar las claves de partición a las que se accede con más frecuencia. Con esta herramienta, puede supervisar continuamente los gráficos de los patrones de acceso a los elementos de la tabla. Una partición activa puede degradar el rendimiento general de la tabla. Para evitar este bajo rendimiento, distribuya las operaciones de lectura y escritura de la manera más uniforme posible en la tabla. Para obtener más información, consulte Diseñar claves de partición para distribuir la carga de trabajo de manera uniforme y Elegir la clave de partición de DynamoDB correcta.

Nota: El uso de la herramienta CloudWatch Contributor Insights para DynamoDB implica cargos adicionales. Para obtener más información, consulte CloudWatch Contributor Insights para la facturación de DynamoDB.

El tráfico de su tabla supera las cuotas de rendimiento de su cuenta

Las cuotas de rendimiento de lectura y escritura a nivel de tabla se aplican a nivel de cuenta en cualquier región. Estas cuotas se aplican a las tablas con modo de capacidad aprovisionada y modo de capacidad bajo demanda. De forma predeterminada, la cuota de rendimiento que aparece en la tabla es de 40 000 unidades de solicitudes de lectura y 40 000 unidades de solicitudes de escritura. Si el tráfico de la tabla supera esta cuota, es posible que la tabla esté limitada. Para resolver este problema, utilice la consola de Service Quotas para aumentar la cuota de rendimiento de lectura o escritura a nivel de tabla de su cuenta.


Información relacionada

Uso de la fragmentación de escritura para distribuir las cargas de trabajo de manera uniforme

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años