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à.
1. Superamento del throughput dell’intervallo di chiavi (partizioni calde)
Amazon DynamoDB applica limiti di throughput specifici a livello di partizione sia per la tabella che per l’indice secondario globale (GSI). Ogni partizione ha un numero massimo di unità di capacità di lettura (RCUs) e unità di capacità di scrittura (WCUs) al secondo. Quando le partizioni ricevono un traffico concentrato che supera questi limiti, subiscono una limitazione (della larghezza di banda della rete), mentre altre operazioni possono rimanere sottoutilizzate, creando “partizioni calde”. La limitazione (della larghezza di banda della rete) a livello di partizione di DynamoDB opera in modo indipendente per le letture e le scritture: una partizione può limitare le letture mentre le scritture continuano normalmente o viceversa. Tale limitazione (della larghezza di banda della rete) può verificarsi anche quando la tabella o il GSI hanno una capacità complessiva sufficiente. Per ulteriori informazioni su:
-
Limiti delle partizioni di DynamoDB e progettazione efficace delle chiavi di partizione per la prevenzione delle partizioni calde, consulta Best practice per la progettazione delle chiavi di partizione e relativo uso in DynamoDB.
-
Concetti generali sulle partizioni e la distribuzione dei dati, consulta Partizioni in DynamoDB.
-
Ulteriori indicazioni e scenari reali per la gestione delle chiavi di partizione e del throughput, consulta Risorse aggiuntive.
Quando singole partizioni superano i limiti di throughput, DynamoDB restituisce un tipo di motivo di limitazione (della larghezza di banda della rete) KeyRangeThroughputExceeded nell’eccezione di limitazione. Le informazioni identificano che una partizione sta registrando un traffico elevato e il tipo di operazione (lettura o scrittura) causa il problema.
Misure di mitigazione per il superamento del throughput dell’intervallo delle chiavi
Questa sezione fornisce indicazioni sulla risoluzione degli scenari di limitazione (della larghezza di banda della rete) a livello di partizione. Prima di utilizzare questa guida è necessario assicurarsi di aver identificato i motivi specifici 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 approfondire gli specifici scenari di limitazione (della larghezza di banda della rete), verifica innanzitutto se il problema si risolve automaticamente:
-
DynamoDB si adatta spesso alle partizioni calde tramite il suo meccanismo automatico. split-for-heat In caso di eventi di limitazione (della larghezza di banda della rete) che si interrompono dopo un breve periodo, è possibile che la tabella si sia già adattata suddividendo la partizione calda. Quando le partizioni si dividono, ogni nuova partizione gestisce una sezione più piccola dello spazio del keyspace, il che può aiutare a distribuire il carico in modo più uniforme. In molti casi, non sono richieste altre operazioni in quanto DynamoDB ha risolto automaticamente il problema.
Per ulteriori informazioni sul meccanismo, vedere. split-for-heat Risorse aggiuntive
Se la limitazione (della larghezza di banda della rete) persiste, consulta gli scenari specifici riportati di seguito per opzioni di correzione mirate:
TableReadKeyRangeThroughputExceeded
Quando avviene
Quando il tasso di consumo di una o più partizioni nella tabella DynamoDB supera il limite di throughput di lettura della partizione. Questa limitazione (della larghezza di banda della rete) si verifica indipendentemente dalla capacità totale allocata alla tabella e influisce sia sulle tabelle con provisioning che on demand. Puoi monitorare le CloudWatch metriche Diagnosi e monitoraggio comuni per analizzare il tuo evento di throttling.
Opzioni di correzione
Prendi in considerazione questa procedura per risolvere i problemi di limitazione (della larghezza di banda della rete):
Sia per le modalità con provisioning che on demand:
-
Pre-riscalda la capacità: se la limitazione (della larghezza di banda della rete) persiste, controlla se la capacità della tabella è limitata dalla sua capacità Funzionamento del throughput di DynamoDB. Utilizza il throughput a caldo o aumenta in anticipo la capacità di lettura allocata per far fronte agli aumenti di traffico previsti. L’aumento del throughput a caldo migliora la capacità della tabella di gestire picchi di traffico improvvisi prima che si verifichi la limitazione (della larghezza di banda della rete). Nel tempo, se il throughput effettivo si avvicina costantemente ai livelli di throughput a caldo, DynamoDB può suddividere le partizioni occupate in base ai modelli di utilizzo osservati.
-
Identifica le chiavi calde: se la tabella non ha risolto il problema automaticamente e il throughput a caldo è elevato o un aumento non è risultato utile, sarà necessario identificare le chiavi calde specifiche. Utilizza Identificazione dei tasti di scelta rapida mediante Contributor Insights CloudWatch per determinare se alcuni valori di una particolare chiave di partizione non sono validi. È un primo passo per indirizzare gli sforzi di mitigazione in modo efficace. L’identificazione potrebbe non essere sempre semplice, in particolare nel caso di partizioni calde continue (in cui partizioni diverse si surriscaldano nel tempo) o quando la limitazione (della larghezza di banda della rete) è innescata da operazioni come le scansioni. Per questi scenari complessi, potrebbe essere necessario analizzare i modelli di accesso dell’applicazione e correlarli con la tempistica degli eventi di limitazione (della larghezza di banda della rete).
-
A seconda del caso d'uso, prendi in considerazione l'utilizzo di letture che alla fine sono consistenti: passa da letture fortemente coerenti a letture sostanzialmente coerenti, che consumano la metà RCUs e possono immediatamente raddoppiare la capacità di lettura effettiva. Per le best practice sull’implementazione di letture a coerenza finale per ridurre l’utilizzo di capacità di lettura, consulta Coerenza di lettura di DynamoDB.
-
Migliora la progettazione delle chiavi di partizione: come soluzione a lungo termine, prendi in considerazione Miglioramento della progettazione delle chiavi di partizione per distribuire l’accesso in modo più uniforme tra le partizioni. Questo approccio spesso fornisce la soluzione più completa ai problemi relativi alle partizioni calde risolvendo la causa principale. Tuttavia, richiede un’attenta pianificazione in quanto comporta sfide di migrazione significative.
TableWriteKeyRangeThroughputExceeded
Quando avviene
Quando il tasso di consumo di una o più partizioni nella tabella DynamoDB supera il limite di throughput di scrittura della partizione. Questa limitazione (della larghezza di banda della rete) si verifica indipendentemente dalla capacità totale allocata alla tabella e influisce sia sulle tabelle con provisioning che on demand. Puoi monitorare le CloudWatch metriche Diagnosi e monitoraggio comuni per analizzare il tuo evento di limitazione.
Opzioni di correzione
Prendi in considerazione questa procedura per risolvere i problemi di limitazione (della larghezza di banda della rete):
Sia per le modalità con provisioning che on demand:
-
Pre-riscalda la capacità: se la limitazione (della larghezza di banda della rete) persiste, controlla se la capacità della tabella è limitata dalla sua capacità Funzionamento del throughput di DynamoDB. Utilizza il throughput a caldo o aumenta in anticipo la capacità di scrittura allocata per far fronte agli aumenti di traffico previsti. L’aumento del throughput a caldo migliora la capacità della tabella di gestire picchi di traffico improvvisi prima che si verifichi la limitazione (della larghezza di banda della rete). Nel tempo, se il throughput effettivo si avvicina costantemente ai livelli di throughput a caldo, DynamoDB può suddividere le partizioni occupate in base ai modelli di utilizzo osservati.
-
Identifica le chiavi calde: se la tabella non ha risolto il problema automaticamente e il throughput a caldo è elevato o un aumento non è risultato utile, sarà necessario identificare le chiavi calde specifiche. Utilizza Identificazione dei tasti di scelta rapida mediante Contributor Insights CloudWatch per determinare se alcuni valori di una particolare chiave di partizione non sono validi. È un primo passo per indirizzare gli sforzi di mitigazione in modo efficace. Prendi in considerazione questi modelli comuni:
-
Se la stessa chiave di partizione appare spesso nei dati di limitazione (della larghezza di banda della rete), ciò significa che si tratta di una chiave calda concentrata.
-
Se non ci sono chiavi ripetute ma si stanno scrivendo i dati in modo ordinato (ad esempio timestamp sequenziali o operazioni basate sulla scansione che seguono l’ordine del keyspace), probabilmente sono presenti partizioni calde continue in cui chiavi diverse diventano calde nel tempo man mano che le scritture si spostano nel keyspace.
La limitazione (della larghezza di banda della rete) di scrittura può verificarsi anche con operazioni come
BatchWriteItemo transazioni che riguardano più elementi contemporaneamente. Quando i singoli elementi di una richiestaBatchWriteItemvengono limitati, DynamoDB non propaga questi errori di limitazione (della larghezza di banda della rete) al codice dell’applicazione. Piuttosto, DynamoDB restituisce informazioni sugli elementi non elaborati nella risposta, che l’applicazione deve gestire effettuando ripetizioni di tentativi per quegli elementi specifici. Per le transazioni, l’intera operazione ha esito negativo e viene segnalata unaTransactionCanceledExceptionin caso di eventuale limitazione (della larghezza di banda della rete) di un elemento. Per questi scenari complessi, potrebbe essere necessario analizzare i modelli di scrittura e i flussi di lavoro di importazione dei dati dell’applicazione, correlarli alla tempistica degli eventi di limitazione (della larghezza di banda della rete) e implementare strategie appropriate di gestione delle ripetizioni dei tentativi. -
-
Migliora la progettazione delle chiavi di partizione: come soluzione a lungo termine, prendi in considerazione Miglioramento della progettazione delle chiavi di partizione per distribuire l’accesso in modo più uniforme tra le partizioni. Questo approccio spesso fornisce la soluzione più completa ai problemi relativi alle partizioni calde risolvendo la causa principale. Tuttavia, richiede un’attenta pianificazione in quanto comporta sfide di migrazione significative.
IndexReadKeyRangeThroughputExceeded
Quando avviene
Quando il tasso di consumo di una o più partizioni nel GSI DynamoDB supera il limite di throughput di lettura della partizione. Questa limitazione (della larghezza di banda della rete) si verifica indipendentemente dalla capacità totale allocata al GSI e influisce sia sulle tabelle con provisioning che on demand. Puoi monitorare le CloudWatch metriche per analizzare il tuo evento Diagnosi e monitoraggio comuni di limitazione.
Opzioni di correzione
Prendi in considerazione questa procedura per risolvere i problemi di limitazione (della larghezza di banda della rete):
-
Pre-riscalda la capacità: se la limitazione (della larghezza di banda della rete) persiste, controlla se il GSI è limitato dalla sua capacità Funzionamento del throughput di DynamoDB. Utilizza il throughput a caldo o aumenta in anticipo la capacità di lettura allocata per far fronte agli aumenti di traffico previsti. L’aumento del throughput a caldo migliora la capacità del GSI di gestire picchi di traffico improvvisi prima che si verifichi la limitazione (della larghezza di banda della rete). Nel tempo, se il throughput effettivo si avvicina costantemente ai livelli di throughput a caldo, DynamoDB può suddividere le partizioni occupate in base ai modelli di utilizzo osservati.
-
Identifica le chiavi calde: se il GSI non ha risolto il problema automaticamente e il throughput a caldo è elevato o un aumento non è risultato utile, sarà necessario identificare le chiavi calde specifiche. Utilizza Identificazione dei tasti di scelta rapida mediante Contributor Insights CloudWatch per determinare se alcuni valori di una particolare chiave di partizione non sono validi. È un primo passo per indirizzare gli sforzi di mitigazione in modo efficace. Tieni presente che GSIs, per, la distribuzione delle chiavi di partizione può differire notevolmente dalla tabella di base, creando diversi modelli di tasti di scelta rapida.
-
Riprogetta le chiavi di partizione del GSI: valuta se la progettazione delle chiavi del GSI potrebbe creare hot spot artificiali (come indicatori di stato, chiavi con sola data o attributi booleani) che concentrano le letture su un numero limitato di partizioni. Prendi in considerazione l’utilizzo di chiavi composite che combinano l’attributo a bassa cardinalità con un attributo ad alta cardinalità (ad esempio, “ACTIVE#customer123” anziché solo “ACTIVE”) o applicano tecniche Utilizzo dello sharding di scrittura per distribuire i carichi di lavoro in modo uniforme in una tabella DynamoDB agli elementi della tabella di base che influiscono sulla distribuzione del GSI per distribuire le scritture su più partizioni. Sebbene l’esecuzione di query su dati sottoposti a sharding richieda una logica applicativa aggiuntiva per aggregare i risultati, questo approccio impedisce la limitazione (della larghezza di banda della rete) distribuendo i modelli di accesso in modo più uniforme.
IndexWriteKeyRangeThroughputExceeded
Quando avviene
Quando il tasso di consumo di una o più partizioni nel GSI DynamoDB supera il limite di throughput di scrittura della partizione. Questa limitazione (della larghezza di banda della rete) si verifica indipendentemente dalla capacità totale allocata al GSI e influisce sia sulle tabelle con provisioning che on demand. Puoi monitorare le CloudWatch metriche Diagnosi e monitoraggio comuni per analizzare il tuo evento di throttling.
Opzioni di correzione
Prendi in considerazione questa procedura per risolvere i problemi di limitazione (della larghezza di banda della rete):
-
Riprogetta la chiave di partizione del GSI: controlla la progettazione delle chiavi di partizione del GSI per verificare che abbia una cardinalità (unicità) sufficiente per distribuire le scritture in modo uniforme. Una causa comune della limitazione (della larghezza di banda della rete) di scrittura nei GSI è l’uso di attributi a bassa cardinalità come chiavi di partizione degli stessi (come i flag di stato con solo pochi valori possibili). Anche quando la tabella di base ha chiavi di partizione ben distribuite, nel GSI possono comunque essere riscontrate partizioni calde se la chiave di partizione concentra le scritture su un numero limitato di valori. Ad esempio, se l’80% degli elementi presenta status=“ACTIVE”, ciò crea una partizione estremamente calda in un GSI basato sullo stato. Prendi in considerazione l’utilizzo di chiavi composite che combinano l’attributo a bassa cardinalità con un attributo ad alta cardinalità (ad esempio, “ACTIVE#customer123” anziché solo “ACTIVE”) o applicano tecniche Utilizzo dello sharding di scrittura per distribuire i carichi di lavoro in modo uniforme in una tabella DynamoDB agli elementi della tabella di base che influiscono sulla distribuzione del GSI per distribuire le scritture su più partizioni. Sebbene l’esecuzione di query su dati sottoposti a sharding richieda una logica applicativa aggiuntiva per aggregare i risultati, questo approccio impedisce la limitazione (della larghezza di banda della rete) distribuendo i modelli di accesso in modo più uniforme.
-
Pre-riscalda la capacità: controlla se il GSI è limitato dalla sua capacità Funzionamento del throughput di DynamoDB. Utilizza il throughput a caldo o aumenta in anticipo la capacità di lettura allocata per far fronte agli aumenti di traffico previsti. L’aumento del throughput a caldo migliora la capacità del GSI di gestire picchi di traffico improvvisi prima che si verifichi la limitazione (della larghezza di banda della rete). Nel tempo, se il throughput effettivo si avvicina costantemente ai livelli di throughput a caldo, DynamoDB può suddividere le partizioni occupate in base ai modelli di utilizzo osservati.
-
Ottimizza le proiezioni GSI: applica Ottimizzazione delle proiezioni dei GSI tecniche per ridurre il volume di scrittura. GSIs La proiezione di un numero inferiore di attributi può ridurre significativamente la capacità di scrittura utilizzata da ogni aggiornamento dei GSI.
Diagnosi e monitoraggio comuni
Durante la risoluzione dei problemi di limitazione a livello di partizione, diverse CloudWatch metriche possono aiutare a identificare le partizioni calde e a confermare la causa principale.
Metriche essenziali CloudWatch
Monitora queste metriche chiave per diagnosticare la limitazione (della larghezza di banda della rete) a livello di partizione:
-
Eventi di limitazione (della larghezza di banda della rete) a livello di partizione:
ReadKeyRangeThroughputThrottleEventseWriteKeyRangeThroughputThrottleEventsmonitorano quando singole partizioni superano i limiti di throughput.ReadThrottleEventseWriteThrottleEventsmonitorano quando le richieste di lettura o scrittura superano la capacità allocata. -
Utilizzo di capacità:
ConsumedReadCapacityUnitseConsumedWriteCapacityUnitsmostrano i modelli di utilizzo complessivi.
Procedure di risoluzione
Identificazione dei tasti di scelta rapida mediante Contributor Insights CloudWatch
Utilizza questa procedura per identificare quali chiavi di partizione causano la limitazione (della larghezza di banda della rete).
-
Abilita CloudWatch Contributor Insights sulla tabella o sul GSI per tenere traccia delle chiavi con più limitazioni. Prendi in considerazione la possibilità di mantenere costantemente attivo CloudWatch Contributor Insights per ricevere avvisi di limitazione in tempo reale utilizzando la modalità Throttled keys. Questa modalità si concentra esclusivamente sulle richieste sottoposte a limitazione (della larghezza di banda della rete) ed elabora gli eventi solo quando si verifica la limitazione. Questo monitoraggio mirato è un modo conveniente per mantenere una visibilità continua sui problemi di limitazione (della larghezza di banda della rete).
-
Identifica le chiavi che causano i problemi di partizioni calde.
-
(Se è abilitata la Modalità delle chiavi con accessi e limitazione (della larghezza di banda della rete) completa) Analizza i modelli di accesso nel tempo per determinare se le chiavi calde sono coerenti o se si verificano in periodi specifici.
Miglioramento della progettazione delle chiavi di partizione
Utilizza questo approccio quando è possibile modificare lo schema della tabella per distribuire meglio il traffico tra le partizioni. Quando possibile, questa è la soluzione a lungo termine più efficace per i problemi relativi alle partizioni calde. Idealmente, la progettazione delle chiavi di partizione dovrebbe essere attentamente considerata durante la fase iniziale di progettazione della tabella.
La riprogettazione della chiave di partizione rappresenta una modifica fondamentale del modello di dati che ha un impatto sull’intero ecosistema applicativo. Prima di procedere con questo approccio, prendi attentamente in considerazione queste limitazioni significative:
-
Complessità della migrazione dei dati: la riprogettazione delle chiavi di partizione richiede la migrazione di tutti i dati esistenti, operazione che può richiedere molte risorse e tempo per tabelle di grandi dimensioni.
-
Modifiche al codice dell’applicazione: tutto il codice dell’applicazione che legge o scrive nella tabella deve essere aggiornato per utilizzare la nuova struttura delle chiavi.
-
Impatto sulla produzione: la migrazione a una nuova progettazione delle chiavi spesso richiede tempi di inattività o complesse strategie di doppia scrittura durante la transizione.
Per le linee guida e i principi completi sulla progettazione delle chiavi di partizione, consulta Best practice per la progettazione delle chiavi di partizione e relativo uso in DynamoDB e Progettazione delle chiavi di partizione per distribuire il carico di lavoro in DynamoDB.
Ottimizzazione delle proiezioni dei GSI
Analisi dei modelli di query dell’applicazione per determinare esattamente quali attributi devono essere disponibili quando si eseguono query sul GSI e limitazione delle proiezioni solo a tali attributi. Quando si aggiornano attributi che non sono proiettati in un GSI, non viene eseguita alcuna operazione di scrittura su tale GSI, riducendo l’utilizzo di throughput di scrittura durante gli aggiornamenti. Questa strategia di proiezione mirata ottimizza sia le prestazioni che i costi, pur continuando a supportare i requisiti di query dell’applicazione. Si noti che la proiezione di un numero inferiore di attributi riduce l’utilizzo di capacità di scrittura, ma potrebbe richiedere letture aggiuntive della tabella di base.
Per ulteriori informazioni sulle strategie di proiezione efficienti, consulta Best practice per l’utilizzo degli indici secondari in DynamoDB.
Risorse aggiuntive
I seguenti post del blog forniscono esempi e dettagli pratici sui concetti trattati in questa guida:
-
Per ulteriori informazioni sull'utilizzo GSIs per distribuire il traffico di lettura, consulta Using Global Secondary Indexes per creare indici secondari coerenti in Amazon DynamoDB
. -
Per una guida pratica sul dimensionamento di DynamoDB e la gestione delle partizioni calde, consulta Part 1: Scaling DynamoDB - How partitions, hot keys, and split for heat impact performance
. -
Per le strategie dettagliate di sharding di scrittura, consulta Utilizzo dello sharding di scrittura per distribuire i carichi di lavoro in modo uniforme in una tabella DynamoDB.