2- La velocità effettiva assegnata è stata superata - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

2- La velocità effettiva assegnata è stata superata

La limitazione della capacità assegnata si verifica quando il tasso di consumo dell'applicazione supera le unità di capacità di lettura o scrittura (RCUs/WCUs) configurate per le tabelle o gli indici secondari globali. Sebbene DynamoDB fornisca una capacità burst per gestire picchi di traffico occasionali, le richieste sostenute oltre i limiti prestabiliti comportano un throttling. Quando ciò accade, DynamoDB restituisce ProvisionedThroughputExceeded un tipo di motivo di limitazione nell'eccezione di limitazione. Il motivo indica se il problema riguarda le operazioni di lettura o scrittura e se influisce sulla tabella di base o su un indice secondario globale.

La limitazione può verificarsi indipendentemente dal fatto che l'Auto Scaling sia abilitato. Auto Scaling si adatta agli aumenti dei consumi, ma non risponde istantaneamente ed è vincolato dai limiti di capacità massima configurati. Ciò significa che il throttling può ancora verificarsi durante improvvisi picchi di traffico o quando il consumo supera i limiti massimi di Auto Scaling.

Il throughput fornito ha superato le misure di mitigazione

Questa sezione fornisce linee guida per la risoluzione degli scenari di limitazione della capacità assegnata. Prima di utilizzare questa guida, assicurati di aver identificato il motivo specifico della limitazione nella gestione delle eccezioni dell'applicazione e di aver determinato l'Amazon Resource Name (ARN) della risorsa interessata. Per informazioni su come recuperare i motivi di limitazione e identificare le risorse limitate, consulta. Framework di diagnosi della limitazione di DynamoDB

Prima di addentrarti in scenari specifici di limitazione, valuta innanzitutto se la limitazione è effettivamente un problema che deve essere risolto:

  • La limitazione occasionale è normale e prevista in applicazioni DynamoDB ben ottimizzate. La limitazione significa semplicemente che stai consumando il 100% di ciò che hai fornito. Se l'applicazione gestisce correttamente la limitazione con nuovi tentativi e le prestazioni complessive soddisfano i requisiti, la limitazione potrebbe non richiedere un'azione immediata.

  • Tuttavia, se la limitazione causa una latenza inaccettabile sul lato client, peggiora l'esperienza utente o impedisce il completamento tempestivo delle operazioni critiche, procedi con le opzioni di mitigazione riportate di seguito.

Quando devi risolvere i problemi di limitazione, stabilisci innanzitutto se la limitazione è causata da:

  • Picchi di traffico temporanei: aumenti di traffico di breve durata che superano la capacità prevista ma non sono sostenuti. Questi richiedono strategie diverse rispetto a un traffico elevato e continuo.

  • Traffico elevato e continuo: carichi di lavoro sostenuti che superano costantemente la capacità prevista.

Per quanto riguarda i picchi di traffico, prendi in considerazione le strategie riportate nel blog Gestisci i picchi di traffico con la capacità fornita di Amazon DynamoDB. Risorse aggiuntive

Per un traffico elevato e continuo, considera le seguenti opzioni di regolazione della capacità:

TableReadProvisionedThroughputExceeded

Quando ciò accade

Il tasso di consumo di lettura dell'applicazione supera le unità di capacità di lettura fornite (RCUs) configurate per la tabella. Puoi monitorare le CloudWatch metriche Diagnosi e monitoraggio comuni per analizzare il tuo evento di limitazione.

Approccio alla risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione della capacità di lettura:

TableWriteProvisionedThroughputExceeded

Quando ciò accade

Il tasso di consumo di scrittura dell'applicazione supera le unità di capacità di scrittura assegnate (WCUs) configurate per la tabella. Puoi monitorare le CloudWatch metriche per analizzare il tuo evento Diagnosi e monitoraggio comuni di throttling.

Approccio alla risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione della capacità di scrittura:

IndexReadProvisionedThroughputExceeded

Quando ciò accade

Il consumo di lettura di un Global Secondary Index (GSI) supera le unità di capacità di lettura fornite dal GSI (). RCUs Puoi monitorare le CloudWatch metriche per analizzare il tuo evento di Diagnosi e monitoraggio comuni throttling.

Approccio alla risoluzione

Considerate queste strategie per risolvere il problema della limitazione della capacità di lettura del GSI:

IndexWriteProvisionedThroughputExceeded

Quando ciò accade

Gli aggiornamenti agli elementi nella tabella di base attivano la scrittura su un GSI che supera la capacità di scrittura fornita dal GSI. Ciò causa una limitazione della contropressione nelle scritture della tabella di base. Puoi monitorare le CloudWatch metriche per analizzare il tuo evento Diagnosi e monitoraggio comuni di limitazione.

Approccio alla risoluzione

Considerate queste strategie per risolvere il problema della limitazione della capacità di scrittura del GSI:

Diagnosi e monitoraggio comuni

Durante la risoluzione degli errori di throughput, diverse CloudWatch metriche possono aiutare a identificare la causa principale.

Metriche essenziali CloudWatch

Monitora queste metriche chiave per diagnosticare la limitazione della capacità assegnata:

Procedure di risoluzione

Aumento della capacità di trasmissione delle tabelle

Utilizzate questa procedura quando l'Auto Scaling non è abilitato e avete bisogno di un aumento immediato della capacità.

  1. Aggiorna la capacità fornita della tabella utilizzando la console AWS CLI DynamoDB o l'SDK:

    • Per la capacità di lettura: aumenta il ReadCapacityUnitsparametro, che specifica il numero massimo di letture fortemente coerenti consumate al secondo prima che DynamoDB limiti le richieste.

    • Per la capacità di scrittura: aumenta il WriteCapacityUnitsparametro, che specifica il numero massimo di scritture consumate al secondo prima che DynamoDB limiti le richieste.

  2. Verifica che le nuove impostazioni di capacità non superino le quote di throughput per tabella e che il consumo totale dell'account rimanga al di sotto delle quote di throughput per account della tua regione. Se ti stai avvicinando a questi limiti, valuta invece la possibilità di passare alla modalità di capacità su richiesta.

Configurazione dell'Auto Scaling delle tabelle per regolare la capacità di lettura o scrittura della tabella o del GSI

Configura DynamoDB Auto Scaling per regolare automaticamente la capacità di lettura o scrittura in base ai modelli di traffico. È possibile configurare Auto Scaling in modo indipendente per entrambe le tabelle e GSIs con controlli separati per le unità di capacità di lettura e scrittura.

  1. Abilita Auto Scaling per la capacità di lettura, la capacità di scrittura o entrambe sulla tabella o sul GSI.

  2. Stabilisci una percentuale di utilizzo target con margine di manovra per i picchi di traffico.

    Nota

    Un minore utilizzo degli obiettivi aumenta i costi e la frequenza di scalabilità. Obiettivi inferiori al 40% possono causare un eccesso di approvvigionamento. Monitora i modelli di utilizzo e i costi per bilanciare prestazioni ed efficienza.

  3. Imposta i limiti di capacità:

    • Minimo RCUs/WCUs: mantiene una capacità sufficiente durante i periodi di traffico ridotto.

    • Massimo RCUs/WCUs: soddisfa le richieste di traffico di picco e protegge da eventi di scalabilità incontrollata.

Per indicazioni sulla configurazione e la gestione di DynamoDB Auto Scaling, consulta Gestire automaticamente la capacità di throughput con DynamoDB Auto Scaling.

Nota

Auto Scaling richiede in genere diversi minuti per rispondere alle variazioni del traffico. In caso di picchi di traffico improvvisi, la capacità burst del tavolo offre una protezione immediata mentre Auto Scaling si regola. Configura l'utilizzo degli obiettivi con un margine di manovra adeguato per dedicare tempo alle operazioni di scalabilità e preservare la capacità di burst in caso di richieste impreviste.

Ottimizzazione delle impostazioni di lettura o scrittura della tabella o dell'indice di Auto Scaling

Utilizzate questa procedura quando Auto Scaling è abilitato ma si verifica ancora una limitazione. È possibile ottimizzare Auto Scaling in modo indipendente sia per le tabelle che per gli indici secondari globali (GSIs), con controlli separati per le unità di capacità di lettura e scrittura.

  • Modifica l'utilizzo degli obiettivi: valuta la possibilità di ridurre l'utilizzo target per la tabella o di attivare il ridimensionamento prima che si verifichi GSIs la limitazione. Assicurati di monitorare il traffico dopo aver apportato queste modifiche. Configurazione dell'Auto Scaling delle tabelle per regolare la capacità di lettura o scrittura della tabella o del GSIPer ulteriori informazioni sul consumo di capacità e sulle implicazioni in termini di costi, consulta.

  • Rivedi i limiti di capacità: assicurati che le impostazioni di capacità minima e massima siano in linea con i modelli di carico di lavoro effettivi.

Passaggio alla modalità di capacità su richiesta

Per informazioni generali sulla commutazione delle modalità di capacità, vedereConsiderazioni sulla commutazione delle modalità di capacità in DynamoDB. Consulta Service Quotas per conoscere i vincoli specifici relativi al passaggio da una modalità all'altra.

Aumento della capacità di throughput del GSI

Usa questa procedura quando Auto Scaling non è abilitato sul tuo GSI o hai bisogno di un aumento immediato della capacità.

  1. Aggiorna la capacità fornita del GSI utilizzando la console DynamoDB o l'SDK: AWS CLI

    • Per la capacità di lettura: aumenta il ReadCapacityUnitsparametro per il GSI specifico, che specifica il numero massimo di letture che il GSI può consumare al secondo prima che DynamoDB limiti le richieste. Tieni presente che sono supportate solo letture alla fine coerenti. GSIs

    • Per la capacità di scrittura: aumenta il WriteCapacityUnitsparametro per il GSI specifico, che specifica il numero massimo di scritture che il GSI può consumare al secondo prima che DynamoDB limiti le richieste.

  2. Assicurati che la capacità di throughput fornita dal GSI rimanga entro le quote di throughput per account e per tabella.

Risorse aggiuntive