4- Se ha superado el rendimiento máximo bajo demanda - Amazon DynamoDB

4- Se ha superado el rendimiento máximo bajo demanda

Al configurar una tabla bajo demanda o un GSI, puede establecer opcionalmente un límite de rendimiento máximo (MaxReadRequestUnits y MaxWriteRequestUnits) por tabla o índice para evitar costos desmesurados o proteger los sistemas posteriores de verse abrumados. Para obtener más información acerca del rendimiento máximo, consulte Rendimiento máximo de DynamoDB para las tablas bajo demanda.

Cuando el consumo de lectura o escritura supera estos límites autoimpuestos, las solicitudes adicionales que superan el límite reciben respuestas rápidas de limitación. DynamoDB devuelve excepciones con un tipo de motivo de limitación MaxOnDemandThroughputExceeded, que indica qué recurso ha alcanzado su límite de rendimiento.

Limitación de rendimiento máximo bajo demanda superado

En esta sección, se proporciona una guía de resolución para situaciones de superación del límite de rendimiento máximo bajo demanda. Antes de usar esta guía, asegúrese de haber identificado los motivos específicos de 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 realmente es necesario tomar medidas:

  • Evalúe la configuración de rendimiento máximo: estos límites se configuraron intencionalmente para controlar los costos o proteger los sistemas posteriores. Si recibe eventos de limitación de MaxOnDemandThroughputExceeded, los límites funcionan según lo diseñado. Considere si aumentar estos límites se ajusta a sus objetivos originales de control de costos o de protección del sistema.

  • Evalúe el impacto de la aplicación: determine si la limitación realmente está causando problemas a las aplicaciones o a los usuarios. Si las aplicaciones gestionan los reintentos de forma eficaz y cumplen los requisitos de rendimiento a pesar de las limitaciones ocasionales, mantener los límites actuales podría ser la opción adecuada.

  • Revise los patrones de tráfico: analice si la limitación representa un patrón de tráfico esperado o un pico inusual. Si detecta patrones de tráfico predecibles y recurrentes que superan los límites de forma coherente, podría estar justificado ajustar la configuración de rendimiento máximo. En el caso de picos temporales, implementar mejores estrategias de distribución de solicitudes podría ser más apropiado que aumentar los límites.

Si, tras considerarlo, determina que es necesario ajustar la configuración de rendimiento máximo, consulte los siguientes escenarios de limitación específicos para ver las opciones de corrección específicas:

TableReadMaxOnDemandThroughputExceeded

Cuando esto ocurre

La tabla bajo demanda ha superado la capacidad de rendimiento de lectura máxima configurada. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Opciones de corrección

Tenga en cuenta estos pasos para solucionar los problemas de limitación:

  • Aumente el límite de rendimiento máximo: use la consola de DynamoDB, AWS CLI o la API de DynamoDB UpdateTable para aumentar el valor de MaxReadRequestUnits para la tabla afectada y, a continuación, supervise y ajuste. Esto permite que la tabla gestione un mayor rendimiento de lectura antes de que se produzca una limitación.

  • Elimine el límite máximo: configure MaxReadRequestUnits en -1 para eliminar el límite, lo que le permitirá escalar en función de la demanda hasta alcanzar las cuotas de rendimiento por cuenta. De esta forma, se elimina el límite personalizado, pero se mantienen las protecciones por cuenta de AWS. Sin embargo, es importante supervisar de cerca los gastos después de eliminar este límite, ya que la tabla ahora puede consumir mucha más capacidad antes de alcanzar las cuotas por cuenta.

TableWriteMaxOnDemandThroughputExceeded

Cuando esto ocurre

La tabla bajo demanda ha superado la capacidad de rendimiento de escritura máxima configurada. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Opciones de corrección

Tenga en cuenta estos pasos para solucionar los problemas de limitación:

  • Aumente el límite de rendimiento máximo: use la consola de DynamoDB, AWS CLI o la API de DynamoDB UpdateTable para aumentar el valor de MaxWriteRequestUnits para la tabla afectada y, a continuación, supervise y ajuste.

  • Elimine el límite máximo: configure MaxWriteRequestUnits en -1 para eliminar el límite, lo que le permitirá escalar en función de la demanda hasta alcanzar las cuotas de rendimiento por cuenta. De esta forma, se elimina el límite personalizado, pero se mantienen las protecciones por cuenta de AWS. Sin embargo, es importante supervisar de cerca los gastos después de eliminar este límite, ya que la tabla ahora puede consumir mucha más capacidad antes de alcanzar las cuotas por cuenta.

IndexReadMaxOnDemandThroughputExceeded

Cuando esto ocurre

Las solicitudes de lectura a un GSI en modo bajo demanda han superado la capacidad de rendimiento máxima de lectura configurada para el GSI. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Opciones de corrección

Tenga en cuenta estos pasos para solucionar los problemas de limitación:

  • Aumente el límite de rendimiento máximo de GSI: use la consola de DynamoDB, AWS CLI o la API de DynamoDB UpdateTable para aumentar el valor de MaxReadRequestUnits para el GSI afectado y, a continuación, supervise y ajuste.

  • Elimine el límite máximo de GSI: configure MaxReadRequestUnits en -1 para el GSI para eliminar el límite, lo que le permitirá escalar en función de la demanda hasta alcanzar las cuotas de rendimiento por cuenta. De esta forma, se elimina el límite personalizado, pero se mantienen las protecciones por cuenta de AWS. Sin embargo, es importante supervisar los gastos de cerca después de eliminar este límite.

IndexWriteMaxOnDemandThroughputExceeded

Cuando esto ocurre

Las actualizaciones de los elementos de la tabla base desencadenan las escrituras en un GSI en modo bajo demanda que superan la capacidad de rendimiento de escritura máxima configurada por el GSI, lo que provoca una limitación de contrapresión. Puede supervisar las métricas de CloudWatch en Diagnóstico y supervisión comunes para analizar el evento de limitación.

Opciones de corrección

Tenga en cuenta estos pasos para solucionar los problemas de limitación:

  • Aumente el límite de rendimiento máximo de GSI: use la consola de DynamoDB, AWS CLI o la API de DynamoDB UpdateTable para aumentar el valor de MaxWriteRequestUnits para el GSI afectado y, a continuación, supervise y ajuste.

  • Elimine el límite máximo de GSI: configure MaxWriteRequestUnits en -1 para el GSI para eliminar el límite, lo que le permitirá escalar en función de la demanda hasta alcanzar las cuotas de rendimiento por cuenta. De esta forma, se elimina el límite personalizado, pero se mantienen las protecciones por cuenta de AWS. Sin embargo, es importante supervisar los gastos de cerca después de eliminar este límite.

Diagnóstico y supervisión comunes

Al solucionar problemas de superación del límite de rendimiento máximo bajo demanda, varias métricas de CloudWatch pueden ayudar a identificar la causa raíz y los patrones de escalado.

Métricas esenciales de CloudWatch

Supervise estas métricas de claves para diagnosticar la superación del límite de rendimiento máximo bajo demanda:

Enfoque de análisis

Siga estos pasos para confirmar que se ha superado el diagnóstico de rendimiento máximo bajo demanda:

  1. Compare la capacidad consumida con los límites de capacidad máxima y compruebe si el consumo se acerca o supera de forma coherente los límites máximos.

  2. Revise la frecuencia y el momento de los eventos de limitación para identificar los patrones. Esté atento a los aumentos repentinos de la capacidad consumida que coincidan con el evento de limitación.

  3. Utilice CloudWatch Contributor Insights para identificar qué elementos o claves de partición consumen más capacidad.