Perché la tabella Amazon DynamoDB allocata è limitata?
Le operazioni di lettura o scrittura sulla tabella Amazon DynamoDB allocata sono limitate. Oppure ricevo il seguente errore quando eseguo operazioni di lettura o scrittura sulla tabella DynamoDB allocata: "ProvisionedThroughputExceededException."
Descrizione breve
Di seguito sono riportati gli scenari più comuni in cui potresti riscontrare una limitazione (della larghezza di banda della rete) nella tabella DynamoDB allocata:
- La tabella DynamoDB dispone di una capacità allocata adeguata, ma la maggior parte delle richieste è limitata.
- Hai attivato AWS Application Auto Scaling per DynamoDB, ma la tabella DynamoDB è limitata.
- È presente una partizione a caldo nella tua tabella.
- Il traffico della tabella supera le quote di velocità di throughput dell'account.
Soluzione
Nota: per informazioni sulle metriche DynamoDB, come WriteThrottleEvents e ReadThrottleEvents, che devono essere monitorate durante gli eventi di limitazione (della larghezza di banda della rete), vedi DynamoDB metrics and dimensions.
In base al tuo caso d'uso, completa le seguenti attività.
La tabella DynamoDB dispone di una capacità allocata adeguata, ma la maggior parte delle richieste è limitata
DynamoDB riporta le metriche a livello di minuto ad Amazon CloudWatch. Le metriche vengono calcolate come somma per un minuto e quindi calcolate come media. Tuttavia, i limiti di velocità di DynamoDB vengono applicati al secondo. Ad esempio, se sono state allocate 60 unità di capacità di scrittura per la tua tabella DynamoDB, puoi eseguire 3600 scritture in un minuto. Tuttavia, l'elaborazione di tutte le 3600 richieste in un secondo senza alcuna richiesta per il resto di quel minuto potrebbe comportare una limitazione (della larghezza di banda della rete). Il numero totale di unità di capacità di lettura o di scrittura al minuto potrebbe essere inferiore al throughput allocato per la tabella. Tuttavia, se tutto il carico di lavoro rientra in un paio di secondi, le richieste potrebbero essere limitate.
Per risolvere questo problema, assicurati che la tabella abbia una capacità sufficiente per servire il traffico. Quindi, utilizza il backoff esponenziale per riprovare le richieste limitate. Se utilizzi SDK AWS, questa logica è implementata per impostazione predefinita. Per ulteriori informazioni, consulta Error retries and exponential backoff.
Nota: DynamoDB non inizia a limitare la tabella dopo che la capacità consumata al secondo supera la capacità allocata. Con la capacità di espansione, DynamoDB riserva una parte della capacità inutilizzata per successive espansioni di throughput che permettano di gestire i picchi di utilizzo. Per ulteriori informazioni, consulta Provisioned capacity mode e In che modo Amazon DynamoDB gestisce i picchi di lavoro a intervalli brevi?
Hai attivato AWS Application Auto Scaling per DynamoDB, ma la tabella DynamoDB è limitata
AWS Application Auto Scaling non è una soluzione adatta per affrontare picchi improvvisi di traffico con tabelle DynamoDB. Application Auto Scaling avvia un dimensionamento quando due punti dati consecutivi per le unità di capacità consumate superano il valore di utilizzo configurato entro un minuto. Application Auto Scaling dimensiona automaticamente la capacità allocata solo quando la capacità consumata è superiore all'utilizzo previsto per due minuti costanti.
Viene avviato un evento di riduzione quando 15 punti dati consecutivi per la capacità consumata in CloudWatch sono inferiori all'utilizzo previsto. Dopo l'avvio di Application Auto Scaling, viene invocata una chiamata API UpdateTable. La chiamata API potrebbe richiedere alcuni minuti per aggiornare la capacità allocata alla tabella o all'indice DynamoDB. Application Auto Scaling richiede punti dati consecutivi con valori di utilizzo di destinazione più elevati per aumentare verticalmente la capacità allocata della tabella DynamoDB. Durante questo periodo, tutte le richieste che superano la capacità allocata della tabella vengono limitate. Non è consigliabile utilizzare Application Auto Scaling per gestire carichi di lavoro impegnativi in DynamoDB. Passa invece alla modalità on-demand. Per ulteriori informazioni, consulta Managing throughput capacity automatically with DynamoDB auto scaling.
È presente una partizione a caldo nella tua tabella
In DynamoDB, una chiave di partizione che non ha una cardinalità elevata può generare numerose richieste destinate solo ad alcune partizioni. Questo evento causa una partizione a caldo. Una partizione a caldo può causare una limitazione (della larghezza di banda della rete) se vengono superati i limiti di partizione di 3000 RCU o 1000 WCU (o di una combinazione di entrambi) al secondo.
Per trovare gli elementi più accessibili e limitati nella tua tabella, usa Contributor Insights di Amazon CloudWatch. Contributor Insights di Amazon CloudWatch è uno strumento di diagnostica che fornisce una panoramica riepilogativa delle tendenze del traffico delle tabelle DynamoDB. Utilizza questo strumento per identificare le chiavi di partizione a cui si accede più frequentemente e monitorare continuamente i grafici in modo da individuare i modelli di accesso agli elementi della tabella.
Una partizione a caldo può ridurre le prestazioni complessive della tabella. Per evitare prestazioni scadenti, distribuisci le operazioni di lettura e scrittura nel modo più uniforme possibile su tutta la tabella. Per ulteriori informazioni, consulta Designing partition keys to distribute your workload e Choosing the right DynamoDB partition key.
Inoltre, è possibile implementare la partizione di scrittura sul tasto di scelta rapida per aumentare la cardinalità e consentire al tasto di scelta rapida di estendersi su più partizioni. Per ulteriori informazioni, consulta Using write sharding to distribute workloads evenly. Usa il backoff esponenziale per riprovare le richieste limitate. Se utilizzi SDK AWS, questa logica è implementata per impostazione predefinita. Per ulteriori informazioni, consulta Error retries and exponential backoff.
Quando si prevede un traffico elevato, è consigliabile aumentare la capacità allocata a un valore elevato. L'aumento della capacità allocata aumenta il numero di partizioni nel backend.
Nota: se utilizzi lo strumento Contributor Insights di CloudWatch per DynamoDB, dovrai sostenere costi aggiuntivi. Per ulteriori informazioni, consulta CloudWatch Contributor Insights for DynamoDB billing.
Il traffico della tabella supera le quote di velocità di throughput dell'account
Le quote di velocità di throughput di lettura e di scrittura a livello di tabella si applicano a livello di account in qualsiasi Regione AWS. Le quote si applicano alle tabelle con modalità di capacità allocata e modalità di capacità on-demand. Per impostazione predefinita, la quota di velocità di trasmissione effettiva inserita nella tabella è di 40.000 unità di richieste di lettura e 40.000 unità di richieste di scrittura. Se il traffico verso la tabella supera questa quota, la tabella potrebbe essere limitata.
Per risolvere questo problema, utilizza la Console Service Quotas per aumentare la quota di velocità di trasmissione effettiva di lettura o scrittura a livello di tabella per il tuo account.
Informazioni correlate
Best practices for designing and using partition keys effectively
- Argomenti
- Database
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 2 mesi fa
AWS UFFICIALEAggiornata un anno fa