2- Se ha superado el rendimiento aprovisionado - Amazon DynamoDB

2- Se ha superado el rendimiento aprovisionado

La limitación de la capacidad aprovisionada se produce cuando la tasa de consumo de la aplicación supera las unidades de capacidad de lectura o escritura (RCU/WCU) configuradas para las tablas o los índices secundarios globales. Aunque DynamoDB proporciona una capacidad de ampliación para gestionar picos de tráfico ocasionales, las solicitudes continuas que superan los límites aprovisionados provocan una limitación. Cuando esto ocurre, DynamoDB devuelve un tipo de motivo de limitación ProvisionedThroughputExceeded en la excepción de limitación. El motivo identifica si el problema está relacionado con las operaciones de lectura o escritura y si afecta a la tabla base o a un índice secundario global.

La limitación se puede producir independientemente de si el escalado automático está activado. El escalado automático se adapta a los aumentos de consumo, pero no responde al instante y está limitado por los límites de capacidad máxima que configure. Esto significa que aún se pueden producir limitaciones durante picos de tráfico repentinos o cuando el consumo supera los límites máximos de escalado automático.

El rendimiento aprovisionado ha superado las medidas de mitigación

Esta sección proporciona una guía para la resolución de situaciones de limitación de capacidad aprovisionada. Antes de usar esta guía, asegúrese de haber identificado el motivo específico de la limitación a partir del manejo de excepciones de la aplicación y de haber determinado el nombre de recurso de Amazon (ARN) del recurso afectado. Para obtener información sobre cómo recuperar los motivos de la limitación e identificar los recursos limitados, consulte Marco de diagnóstico de limitación de DynamoDB.

Antes de sumergirse en escenarios de limitación específicos, primero considere si la limitación es realmente un problema que necesita solución:

  • En aplicaciones de DynamoDB bien optimizadas, es normal y se espera que se produzcan limitaciones ocasionales. La limitación simplemente significa que está consumiendo el 100 % de lo que ha aprovisionado. Si la aplicación gestiona la limitación sin problemas con los reintentos y el rendimiento general cumple con los requisitos, es posible que la limitación no requiera una acción inmediata.

  • Sin embargo, si la limitación provoca una latencia inaceptable del cliente, degrada la experiencia del usuario o impide que las operaciones críticas se completen a tiempo, proceda con las siguientes opciones de mitigación.

Cuando necesite solucionar problemas de limitación, primero determine si la limitación se debe a:

  • Picos de tráfico temporales: incrementos de tráfico de corta duración que superan la capacidad aprovisionada pero que no se mantienen. Estos requieren estrategias diferentes a las del tráfico alto continuo.

  • Tráfico alto continuo: cargas de trabajo sostenidas que superan de forma coherente la capacidad aprovisionada.

Para los picos de tráfico, considere las estrategias del blog Handle traffic spikes with Amazon DynamoDB provisioned capacity en Recursos adicionales.

Para un tráfico elevado y continuo, considere las siguientes opciones de ajuste de capacidad:

TableReadProvisionedThroughputExceeded

Cuando esto ocurre

La tasa de consumo de lectura de la aplicación supera las unidades de capacidad de lectura (RCU) aprovisionadas configuradas para la tabla. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Enfoque de resolución

Tenga en cuenta estas estrategias para resolver la limitación de la capacidad de lectura:

TableWriteProvisionedThroughputExceeded

Cuando esto ocurre

La tasa de consumo de escritura de la aplicación supera las unidades de capacidad de escritura (WCU) aprovisionadas configuradas para la tabla. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Enfoque de resolución

Tenga en cuenta estas estrategias para resolver la limitación de la capacidad de escritura:

IndexReadProvisionedThroughputExceeded

Cuando esto ocurre

El consumo de lectura en un índice secundario global (GSI) supera las unidades de capacidad de lectura (RCU) aprovisionadas del GSI. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Enfoque de resolución

Tenga en cuenta estas estrategias para resolver la limitación de la capacidad de lectura de GSI:

IndexWriteProvisionedThroughputExceeded

Cuando esto ocurre

Las actualizaciones de los elementos de la tabla base desencadenan las escrituras en un GSI que superan la capacidad de escritura aprovisionada de GSI. Esto provoca una limitación de contrapresión en las escrituras de la tabla base. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Enfoque de resolución

Tenga en cuenta estas estrategias para resolver la limitación de la capacidad de escritura de GSI:

Diagnóstico y supervisión comunes

Al solucionar problemas de rendimiento, varias métricas de CloudWatch pueden ayudar a identificar la causa raíz.

Métricas esenciales de CloudWatch

Supervise estas métricas de claves para diagnosticar la limitación de la capacidad aprovisionada:

Procedimientos de resolución

Aumento de la capacidad de rendimiento de la tabla

Utilice este procedimiento cuando el escalado automático no esté habilitado y necesite un aumento de capacidad inmediato.

  1. Actualice la capacidad aprovisionada de la tabla mediante la consola de DynamoDB, la AWS CLI o el SDK:

    • Para la capacidad de lectura: aumente el parámetro ReadCapacityUnits, que especifica el número máximo de lecturas altamente coherentes que se consumen por segundo antes de que DynamoDB limite las solicitudes.

    • Para la capacidad de escritura: aumente el parámetro WriteCapacityUnits, que especifica el número máximo de escrituras que se consumen por segundo antes de que DynamoDB limite las solicitudes.

  2. Compruebe que la nueva configuración de capacidad no supere las cuotas de rendimiento por tabla y que el consumo total de la cuenta se mantenga por debajo de las cuotas de rendimiento por cuenta de la región. Si se está acercando a estos límites, considere cambiar al modo de capacidad bajo demanda en su lugar.

Configuración del escalado automático de la tabla para ajustar la capacidad de lectura o escritura de la tabla o GSI

Configure el escalado automático de DynamoDB para ajustar automáticamente la capacidad de lectura o escritura en función de los patrones de tráfico. Puede configurar el escalado automático de forma independiente para las tablas y para los GSI, con controles independientes para las unidades de capacidad de lectura y escritura.

  1. Habilite el escalado automático para la capacidad de lectura, capacidad de escritura o ambas en la tabla o GSI.

  2. Establezca un porcentaje de uso objetivo con margen de maniobra para los picos de tráfico.

    nota

    Un uso objetivo menor aumenta los costos y la frecuencia de escalado. Los objetivos por debajo del 40 % pueden provocar un sobreaprovisionamiento. Supervise los patrones de uso y los costos para equilibrar el rendimiento y la eficiencia.

  3. Establecimiento de los límites de capacidad:

    • Mínimo de RCU/WCU: mantiene una capacidad suficiente durante los periodos de tráfico bajo.

    • Máximo de RCU/WCU: se adapta a las demandas de picos de tráfico y protege contra los eventos de escalado descontrolado.

Para obtener instrucciones sobre la configuración y la administración del escalado automático de DynamoDB, consulte Administración automática de la capacidad de rendimiento con el escalado automático de DynamoDB.

nota

Por lo general, el escalado automático tarda varios minutos en responder a los cambios de tráfico. En caso de picos de tráfico repentinos, la capacidad de ampliación de la tabla proporciona protección inmediata mientras el escalado automático se ajusta. Configure el uso objetivo con el margen de maniobra adecuado para disponer de tiempo para escalar las operaciones y preservar la capacidad de ampliación ante una demanda imprevista.

Optimización de los ajustes de escalado automático de lectura o escritura de la tabla o índice

Utilice este procedimiento cuando el escalado automático esté habilitado pero se siga produciendo la limitación. Puede ajustar el escalado automático de forma independiente para las tablas y para los índices secundarios globales (GSI), con controles independientes para las unidades de capacidad de lectura y escritura.

  • Ajuste el uso objetivo: considere reducir el uso objetivo de la tabla o los GSI para desencadenar el escalado antes de que se produzca la limitación. Asegúrese de supervisar el tráfico después de realizar estos ajustes. Consulte Configuración del escalado automático de la tabla para ajustar la capacidad de lectura o escritura de la tabla o GSI para obtener más información sobre el consumo de capacidad y las implicaciones de costos.

  • Revise los límites de capacidad: asegúrese de que los ajustes de capacidad mínima y máxima se ajusten a los patrones de carga de trabajo reales.

Cambio al modo de capacidad bajo demanda

Para obtener información general sobre el cambio de los modos de capacidad, consulte Aspectos a tener en cuenta al cambiar los modos de capacidad en DynamoDB. Consulte Service Quotas para obtener información sobre las restricciones específicas al cambiar de modo.

Aumento de la capacidad de rendimiento de GSI

Utilice este procedimiento cuando el escalado automático no esté habilitado en el GSI o necesite un aumento de capacidad inmediato.

  1. Actualice la capacidad aprovisionada de GSI mediante la consola de DynamoDB, la AWS CLI o el SDK:

    • Para la capacidad de lectura: aumente el parámetro ReadCapacityUnits para el GSI específico, que especifica el número máximo de lecturas que el GSI puede consumir por segundo antes de que DynamoDB limite las solicitudes. Tenga en cuenta que los GSI solo admiten lecturas coherentes posteriores.

    • Para la capacidad de escritura: aumente el parámetro WriteCapacityUnits para el GSI específico, que especifica el número máximo de escrituras que el GSI puede consumir por segundo antes de que DynamoDB limite las solicitudes.

  2. Asegúrese de que la capacidad de rendimiento aprovisionada de GSI se mantenga dentro de las cuotas de rendimiento por cuenta y por tabla.

Recursos adicionales