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:
-
Passa alla modalità di capacità su richiesta: valuta la possibilità di passare dalla tabella alla modalità on-demand se riscontri frequenti rallentamenti dovuti ai picchi di traffico. On-demand elimina i problemi di approvvigionamento e si adatta automaticamente al carico di lavoro.
-
Se si mantiene la modalità provisioning e Auto Scaling non è abilitato:
-
Valuta la possibilità di aumentare la capacità di lettura delle tabelle.
-
Abilita Auto Scaling per la capacità di lettura sulla tua tabella.
-
-
Se Auto Scaling è abilitato (impostazione predefinita per le tabelle create nella console):
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:
-
Passa alla modalità di capacità su richiesta: valuta la possibilità di passare dalla tabella alla modalità on-demand se riscontri frequenti rallentamenti dovuti ai picchi di traffico. On-demand elimina i problemi di approvvigionamento e si adatta automaticamente al carico di lavoro.
-
Se si mantiene la modalità provisioning e Auto Scaling non è abilitato:
-
Se Auto Scaling è abilitato (impostazione predefinita per le tabelle create nella console):
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:
-
Passa alla modalità di capacità su richiesta: prendi in considerazione la possibilità di passare dalla tabella di base alla modalità on-demand se riscontri frequenti rallentamenti dovuti ai picchi di traffico. On-demand elimina i problemi di approvvigionamento e si adatta automaticamente al carico di lavoro.
-
Se si mantiene la modalità provisioning e Auto Scaling non è abilitato:
-
Prendi in considerazione l'aumento della capacità di lettura del GSI.
-
Abilita Auto Scaling per la capacità di lettura sul tuo GSI.
-
-
Se Auto Scaling è abilitato (impostazione predefinita per le tabelle create nella console):
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:
-
Passa alla modalità di capacità su richiesta: valuta la possibilità di passare dalla tabella di base alla modalità on-demand se riscontri frequenti rallentamenti dovuti ai picchi di traffico. On-demand elimina i problemi di approvvigionamento e si adatta automaticamente al carico di lavoro.
-
Se si mantiene la modalità provisioning e Auto Scaling non è abilitato:
-
Prendi in considerazione l'aumento della capacità di scrittura del GSI.
-
Abilita Auto Scaling per la capacità di scrittura sul tuo GSI.
-
-
Se Auto Scaling è abilitato (impostazione predefinita per le tabelle create nella console):
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:
-
Eventi di limitazione:
ReadProvisionedThroughputThrottleEventseWriteProvisionedThroughputThrottleEventsmonitora quando le richieste vengono limitate per questo motivo.ReadThrottleEventseWriteThrottleEventsmonitora quando le richieste di lettura o scrittura superano la capacità fornita. -
Consumo di capacità:
ConsumedReadCapacityUnitseConsumedWriteCapacityUnitsmostra l'utilizzo effettivo. -
Capacità assegnata:
ProvisionedReadCapacityUnitseProvisionedWriteCapacityUnitsmostra i limiti configurati.
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à.
-
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.
-
-
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.
-
Abilita Auto Scaling per la capacità di lettura, la capacità di scrittura o entrambe sulla tabella o sul GSI.
-
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.
-
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à.
-
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.
-
Risorse aggiuntive
-
Per informazioni su come utilizzare un'espressione cron per pianificare una policy di scalabilità, consulta Optimize cost by scheduling provisioned capacity
for DynamoDB. -
Per informazioni pratiche sul monitoraggio e l'analisi dei modelli di utilizzo del throughput per le tabelle DynamoDB in modalità di capacità fornita, consulta Come valutare l'utilizzo del throughput
per le tabelle Amazon DynamoDB in modalità provisioned.