2. Superamento del throughput allocato - 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. Superamento del throughput allocato

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à di espansione per gestire picchi di traffico occasionali, le richieste sostenute oltre i limiti prestabiliti comportano una limitazione (della larghezza di banda della rete). Quando ciò accade, DynamoDB restituisce un tipo di motivo di limitazione (della larghezza di banda della rete) ProvisionedThroughputExceeded 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 (della larghezza di banda della rete) può verificarsi indipendentemente dal fatto che il dimensionamento automatico sia abilitato o meno. Il dimensionamento automatico si adatta agli aumenti dei consumi, ma non risponde istantaneamente ed è vincolato dai limiti di capacità massima configurati. Ciò significa che può ancora verificarsi la limitazione (della larghezza di banda della rete) durante improvvisi picchi di traffico o quando l’utilizzo supera i limiti massimi di dimensionamento automatico.

Misure di mitigazione per il superamento del throughput allocato

Questa sezione fornisce indicazioni per la risoluzione degli scenari di limitazione (della larghezza di banda della rete) della capacità allocata. Prima di utilizzare questa guida è necessario assicurarsi di aver identificato il motivo specifico della limitazione (della larghezza di banda della rete) nella gestione delle eccezioni dell’applicazione e di aver determinato il nome della risorsa Amazon (ARN) della risorsa interessata. Per informazioni su come recuperare i motivi della limitazione (della larghezza di banda della rete) e identificare le risorse limitate, consulta Framework di diagnosi della limitazione (della larghezza di banda della rete) di DynamoDB.

Prima di addentrarsi in scenari specifici di limitazione, occorre valutare innanzitutto se la limitazione (della larghezza di banda della rete) è effettivamente un problema che deve essere risolto:

  • Una limitazione (della larghezza di banda della rete) occasionale è normale e prevista in applicazioni DynamoDB ben ottimizzate; in questo caso la limitazione (della larghezza di banda della rete) indica semplicemente che si sta consumando il 100% di quanto allocato. Se l’applicazione gestisce correttamente la limitazione (della larghezza di banda della rete) con la ripetizione dei tentativi e le prestazioni complessive soddisfano i requisiti, potrebbe non essere necessaria un’azione immediata.

  • Tuttavia, se la latenza causata è inaccettabile sul lato client, peggiorando l’esperienza utente o impedendo il completamento tempestivo delle operazioni cruciali, procedi con le opzioni di mitigazione riportate di seguito.

Per risolvere i problemi di limitazione (della larghezza di banda della rete), stabilisci innanzitutto se la limitazione è causata da:

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

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

Per quanto riguarda i picchi di traffico, prendi in considerazione le strategie tratte dal blog Handle traffic spikes with Amazon DynamoDB provisioned capacity in Risorse aggiuntive.

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

TableReadProvisionedThroughputExceeded

Quando avviene

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

Approccio di risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione (della larghezza di banda della rete) della capacità di lettura:

TableWriteProvisionedThroughputExceeded

Quando avviene

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 di risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione (della larghezza di banda della rete) della capacità di scrittura:

IndexReadProvisionedThroughputExceeded

Quando avviene

Il consumo di lettura su 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 di risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione (della larghezza di banda della rete) della capacità di lettura nei GSI:

IndexWriteProvisionedThroughputExceeded

Quando avviene

Quando gli aggiornamenti agli elementi nella tabella di base attivano la scrittura su un GSI che supera la capacità di scrittura allocata del GSI. Ciò causa una limitazione (della larghezza di banda della rete) da contropressione nelle scritture della tabella di base. Puoi monitorare le CloudWatch metriche per analizzare il tuo evento Diagnosi e monitoraggio comuni di limitazione.

Approccio di risoluzione

Prendi in considerazione queste strategie per risolvere il problema della limitazione (della larghezza di banda della rete) della capacità di scrittura nei 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 larghezza di banda della rete) della capacità allocata:

Procedure di risoluzione

Aumento della capacità di throughput delle tabelle

Utilizza questa procedura quando il dimensionamento automatico non è abilitato ed è necessario 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 parametro ReadCapacityUnits, che specifica il numero massimo di operazioni a elevata consistenza di lettura utilizzate al secondo prima che DynamoDB sottoponga a limitazione (della larghezza di banda della rete) le richieste.

    • Per la capacità di scrittura: aumenta il parametro WriteCapacityUnits, che specifica il numero massimo di scritture utilizzate al secondo prima che DynamoDB sottoponga a limitazione (della larghezza di banda della rete) le richieste.

  2. Verifica che le nuove impostazioni di capacità non superino le quote di throughput per tabella e che l’utilizzo totale dell’account rimanga al di sotto delle quote di throughput per account della Regione. Se questi limiti si stanno avvicinando, valuta invece la possibilità di passare alla modalità con capacità on demand.

Configurazione del dimensionamento automatico delle tabelle per regolare la capacità di lettura o scrittura della tabella o del GSI

Configura il dimensionamento automatico di DynamoDB 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 il dimensionamento automatico per la capacità di lettura, la capacità di scrittura o entrambe sulla tabella o sul GSI.

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

    Nota

    Un minore utilizzo di destinazione aumenta i costi e la frequenza di dimensionamento. Destinazioni inferiori al 40% possono causare un eccesso di provisioning. Monitora i modelli di utilizzo e i costi per bilanciare prestazioni ed efficienza.

  3. Imposta 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 del dimensionamento automatico di DynamoDB, consulta Gestione automatica della capacità effettiva di trasmissione con il dimensionamento automatico di DynamoDB.

Nota

Il dimensionamento automatico richiede in genere diversi minuti per rispondere alle variazioni del traffico. In caso di picchi di traffico improvvisi, la capacità di espansione della tabella offre una protezione immediata mentre il dimensionamento automatico si adatta. Configura l’utilizzo di destinazione con un margine di manovra adeguato per dare tempo alle operazioni di dimensionamento e preservare la capacità di espansione in caso di richieste impreviste.

Ottimizzazione delle impostazioni di dimensionamento automatico di lettura o scrittura della tabella o dell’indice

Utilizza questa procedura quando il dimensionamento automatico è abilitato ma si verifica comunque una limitazione (della larghezza di banda della rete). È 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.

Passaggio alla modalità con capacità on demand

Per informazioni generali sul passaggio tra modalità di capacità, consulta Considerazioni sul passaggio tra modalità di capacità in DynamoDB. Fai riferimento a Service Quotas per conoscere i vincoli specifici relativi al passaggio da una modalità all’altra.

Aumento della capacità di throughput dei GSI

Utilizza questa procedura quando il dimensionamento automatico non è abilitato sul GSI ed è necessario 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 parametro ReadCapacityUnits per il GSI specifico, che specifica il numero massimo di letture utilizzabili al secondo dal GSI prima che DynamoDB sottoponga a limitazione (della larghezza di banda della rete) le richieste. Tieni presente che supportano GSIs solo letture alla fine coerenti.

    • Per la capacità di scrittura: aumenta il parametro WriteCapacityUnits per il GSI specifico, che specifica il numero massimo di scritture utilizzabili al secondo dal GSI prima che DynamoDB sottoponga a limitazione (della larghezza di banda della rete) le richieste.

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

Risorse aggiuntive