¿Cuándo solicita DynamoDB throttle?


En la respuesta a " ¿Cómo se calcula y limita el rendimiento de Amazon DynamoDB?" se ha sugerido que DynamoDB acelere la solicitud cada vez que exceda el rendimiento aprovisionado por segundo. Sin embargo, esto contradice mi experiencia.

Tengo una tabla donde posteo varias filas, a menudo el número de filas excede la capacidad de escritura aprovisionada. Esto sucede en ráfagas cortas. En un punto, incluso tengo un promedio de 5 minutos por encima de la capacidad aprovisionada. OTOH, 15 minutos promedio está por debajo de la capacidad. No tengo ninguna solicitud restringida en ese período.

Picos promedio de 5 minutos a 8.053 con una capacidad aprovisionada de 6: promedio de 5 minutos

Picos promedio de 15 minutos muy por debajo de la capacidad aprovisionada:

introduzca la descripción de la imagen aquí

Entonces, ¿cuándo acelera DynamoDB las solicitudes? ¿Qué tipo de promedio tiene en cuenta? ¿Qué tan alto por encima de la capacidad aprovisionada puede estar la ráfaga antes de que se estrangule?

Author: Community, 2013-06-07

2 answers

DynamoDB está diseñado para garantizar que la capacidad aprovisionada esté disponible por segundo. Si aprovisiona una tabla para diez lecturas de 1 Kb por segundo, DynamoDB le dará la capacidad suficiente para manejar esa tasa de rendimiento. Además, DynamoDB a veces le permitirá lograr un estallido limitado por encima de su rendimiento aprovisionado durante un corto período de tiempo. Con ello se pretende absorber las variaciones naturales de las cargas de trabajo de los clientes. Este estallido no está garantizado y no siempre lo está disponible (y la naturaleza de la explosión disponible puede cambiar con el tiempo). Como se describe actualmente en la documentación de mejores prácticas, para obtener el mejor rendimiento, debe tener una carga de trabajo distribuida de manera uniforme que no exceda la capacidad aprovisionada y distribuya la carga de manera uniforme en el espacio de claves. Sin embargo, si la realidad del comportamiento de producción de su aplicación se desvía de una carga de trabajo distribuida uniformemente, DynamoDB puede absorber algunas de las ráfagas.

En cuanto a cuánto para aprovisionar su tabla, depende mucho de su carga de trabajo. Puede comenzar con el aprovisionamiento a algo así como el 80% de sus picos y luego ajustar la capacidad de la tabla en función de la cantidad de aceleraciones que reciba (que puede ver en sus gráficos de CloudWatch) y la tolerancia de la aplicación para la latencia inducida por reintentos. Tenga en cuenta que DynamoDB no permite ráfagas ilimitadas por encima de la capacidad aprovisionada. Es posible que pueda absorber ráfagas cortas, pero no puede mantener un rendimiento tasa por encima del nivel de capacidad aprovisionada durante un período de tiempo prolongado. La guía general que podemos dar es la provisión para algo cercano a sus picos y luego bajar el ritmo mientras observamos los aceleradores.

Esta respuesta se publicó en AWS forums

Descargo de responsabilidad: Trabajo para Amazon, equipo de DynamoDB.

 58
Author: Dan Andreatta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-19 10:27:27

Hay una pista en la documentación de DynamoDB que explica cómo funciona el estallido:

Cuando no está utilizando completamente el rendimiento de una partición, DynamoDB conserva una parte de su capacidad no utilizada para posteriores ráfagas de uso del rendimiento. Actualmente, DynamoDB retiene hasta cinco minutos (300 segundos) de capacidad de lectura y escritura no utilizada.

Pero también dice que no puedes confiar en este comportamiento:

Sin embargo, no diseñe su aplicación para que depende de que la capacidad de ráfaga esté disponible en todo momento: DynamoDB puede usar la capacidad de ráfaga para el mantenimiento en segundo plano y otras tareas sin previo aviso.

Al menos eso explicaría por qué era posible tener un promedio de 5 minutos por encima de la capacidad aprovisionada. Con la explicación anterior, incluso sería posible tener promedios de 15 minutos (o intervalos de tiempo más largos) para estar por encima de la capacidad aprovisionada, si tiene un pico al principio del intervalo y menos uso dentro de los 300 segundos antes del inicio del intervalo.

 15
Author: Ben Romberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-04 10:49:33