tutorial query dynamodb amazon-web-services metrics amazon-dynamodb

amazon-web-services - tutorial - dynamodb query



¿Cuándo se solicita el acelerador DynamoDB? (2)

DynamoDB está diseñado para garantizar que su capacidad de suministro esté disponible por segundo. Si aprovisiona una tabla para diez lecturas de 1kB por segundo, entonces 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 previsto durante un corto período de tiempo. Esto tiene la intención de absorber variaciones naturales en las cargas de trabajo de los clientes. Este estallido no está garantizado y no siempre está disponible (y la naturaleza del estallido disponible puede cambiar con el tiempo). Tal como se describe actualmente en la documentación de las mejores prácticas, para obtener el mejor rendimiento, debe tener una carga de trabajo distribuida uniformemente que no exceda su capacidad de suministro y distribuya la carga de manera uniforme en el espacio clave. 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 la provisión de su tabla, depende mucho de su carga de trabajo. Podría comenzar aprovisionando algo así como el 80% de sus picos y luego ajustar la capacidad de su tabla según la cantidad de aceleradores que reciba (que puede ver en sus gráficos de CloudWatch) y la tolerancia de la aplicación para la latencia inducida por los reintentos. Tenga en cuenta que DynamoDB no permite ráfagas ilimitadas por encima de su capacidad de suministro. Es posible que pueda absorber ráfagas cortas, pero no puede mantener una tasa de rendimiento superior al nivel de capacidad aprovisionado durante un período de tiempo prolongado. La orientación general que podemos ofrecer es aprovisionar algo cerca de sus picos y luego marcar mientras busca aceleradores.

Esta respuesta fue publicada en los foros de AWS

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

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

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

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

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

Entonces, ¿cuando DynamoDB acelera las solicitudes? ¿Qué tipo de promedio toma en cuenta? ¿Qué tan alto está por encima de la capacidad de aprovisionamiento antes de que se acelere?


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 retiene una parte de su capacidad no utilizada para futuras ráfagas de uso de rendimiento. DynamoDB actualmente conserva hasta cinco minutos (300 segundos) de capacidad de lectura y escritura sin usar.

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

Sin embargo, no diseñe su aplicación de modo que dependa de que la capacidad de ráfaga esté disponible en todo momento: DynamoDB puede usar y utiliza la capacidad de ráfaga para el mantenimiento de fondo 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) por encima de la capacidad aprovisionada, si tiene un pico en el comienzo del intervalo y menos uso dentro de los 300 segundos antes del inicio de el intervalo.