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 UpdateTablepara aumentar el valor deMaxReadRequestUnitspara 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
MaxReadRequestUnitsen-1para 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 UpdateTablepara aumentar el valor deMaxWriteRequestUnitspara la tabla afectada y, a continuación, supervise y ajuste. -
Elimine el límite máximo: configure
MaxWriteRequestUnitsen-1para 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 UpdateTablepara aumentar el valor deMaxReadRequestUnitspara el GSI afectado y, a continuación, supervise y ajuste. -
Elimine el límite máximo de GSI: configure
MaxReadRequestUnitsen-1para 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 UpdateTablepara aumentar el valor deMaxWriteRequestUnitspara el GSI afectado y, a continuación, supervise y ajuste. -
Elimine el límite máximo de GSI: configure
MaxWriteRequestUnitsen-1para 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:
-
Eventos de limitación de rendimiento máxima:
ReadMaxOnDemandThroughputThrottleEventsyWriteMaxOnDemandThroughputThrottleEventsrealizan un seguimiento cuando las solicitudes se limitan debido a la superación de los límites máximos.ReadThrottleEventsyWriteThrottleEventsrealizan un seguimiento de los casos en que las solicitudes de lectura o escritura superan la capacidad aprovisionada. -
Rendimiento máximo actual configurado para una tabla o índice secundario global:
OnDemandMaxReadRequestUnitsyOnDemandMaxWriteRequestUnitsmuestran los límites de capacidad máxima actuales. -
Consumo de capacidad real:
ConsumedReadCapacityUnitsyConsumedWriteCapacityUnitsmuestran los patrones de uso reales.
Enfoque de análisis
Siga estos pasos para confirmar que se ha superado el diagnóstico de rendimiento máximo bajo demanda:
-
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.
-
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.
-
Utilice CloudWatch Contributor Insights para identificar qué elementos o claves de partición consumen más capacidad.