Valuta la modalità di capacità della tua tabella DynamoDB - 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à.

Valuta la modalità di capacità della tua tabella DynamoDB

In questa sezione viene fornita una panoramica su come selezionare la modalità di capacità appropriata per la tabella DynamoDB. Ogni modalità è ottimizzata per soddisfare le esigenze di un carico di lavoro diverso in termini di capacità di risposta alle variazioni della velocità di trasmissione effettiva e di fatturazione dell'utilizzo. Quando si decide, è necessario bilanciare questi fattori.

Modalità di capacità della tabella disponibili

Quando crei una tabella DynamoDB, devi selezionare la modalità di capacità on demand o la modalità di capacità assegnata. Puoi passare da una modalità di capacità in lettura/scrittura all'altra una volta ogni 24 ore. L'unica eccezione è rappresentata dal passaggio da una tabella delle modalità predisposte alla modalità on demand: è possibile tornare alla modalità con provisioning nello stesso periodo di 24 ore.

Modalità di capacità on demand

La modalità di capacità on demand è progettata per eliminare la necessità di pianificare o fornire la capacità della tabella DynamoDB. In questa modalità, le richieste alla tabella verranno soddisfate istantaneamente senza la necessità di dimensionare le risorse (fino al doppio del picco di velocità di trasmissione effettiva precedente della tabella).

Le tabelle on demand vengono fatturate conteggiando il numero di richieste effettive alla tabella, quindi pagherai solo per ciò che utilizzi anziché per ciò che è stato assegnato.

Modalità di capacità assegnata

La modalità di capacità fornita è un modello più tradizionale in cui è possibile definire la capacità disponibile nella tabella per le richieste direttamente o con l'assistenza della scalabilità automatica. Poiché per la tabella viene assegnata una capacità specifica in un dato momento, la fatturazione si basa sulla capacità assegnata anziché sul numero di richieste. Se si supera la capacità assegnata la tabella potrebbe rifiutare le richieste, con conseguente impatto negativo sull'esperienza utente delle applicazioni.

La modalità di capacità assegnata richiede un bilanciamento per evitare l'assegnazione eccessiva o insufficiente della tabella per mantenere ottimizzati sia i tempi di limitazione della larghezza di banda della rete che i costi.

Quando selezionare la modalità di capacità on demand

Se l'obiettivo è ottimizzare i costi e il carico di lavoro è simile a quello nel seguente grafico, la modalità on demand è la scelta migliore.

I seguenti fattori contribuiscono a questo tipo di carico di lavoro:

  • Tempi imprevedibili delle richieste (con conseguenti picchi di traffico)

  • Volume variabile di richieste (derivante da carichi di lavoro in batch)

  • Scende a zero o al di sotto del 18% del picco in una determinata ora (derivante da ambienti di sviluppo o di test)

Grafico per un carico di lavoro variabile e imprevedibile con picchi e periodi di bassa attività.

Per i carichi di lavoro con i fattori sopra indicati, l'utilizzo della scalabilità automatica per mantenere una capacità sufficiente a rispondere ai picchi di traffico porterà probabilmente a un eccesso di approvvigionamento e a costi più elevati del necessario o a un approvvigionamento insufficiente della tabella e a una limitazione inutile delle richieste.

Poiché le tabelle on demand vengono fatturate pay-per-request in base alle richieste di lettura e scrittura, si paga solo in base all'uso effettivo, il che facilita il bilanciamento tra costi e prestazioni. Facoltativamente, puoi anche configurare la velocità massima di lettura o scrittura (o entrambe) al secondo per singole tabelle on demand e indici secondari globali per mantenere costi e utilizzo limitati. Per ulteriori informazioni, consulta Throughput massimo di DynamoDB per le tabelle su richiesta. È necessario valutare regolarmente le tabelle on demand per verificare che il carico di lavoro presenti ancora i fattori indicati in precedenza. Se il carico di lavoro si è stabilizzato, valuta la possibilità di passare alla modalità con assegnazione per ottimizzare ulteriormente i costi.

Quando selezionare la modalità di capacità assegnata

Un carico di lavoro ideale per la modalità di capacità assegnata presenta un modello di utilizzo più prevedibile, come mostrato nel grafico seguente.

Nota

Ti consigliamo di esaminare le metriche con una certa precisione, ad esempio 14 giorni o 24 ore, prima di intervenire sulla capacità assegnata.

I seguenti fattori contribuiscono a questo tipo di carico di lavoro:

  • Traffico prevedibile/ciclico per una determinata ora o giorno

  • Picchi di traffico limitati e di breve durata

Grafico che illustra un carico di lavoro ciclico prevedibile con picchi di traffico limitati.

Poiché i volumi di traffico in una determinata ora o giorno sono più stabili, possiamo impostare la capacità assegnata della tabella relativamente vicina alla capacità effettivamente consumata della tabella. In definitiva, ottimizzare i costi di una tabella con capacità assegnata significa avvicinare il più possibile la capacità assegnata (linea blu) alla capacità consumata (linea arancione) senza aumentare la metrica ThrottledRequests nella tabella. Lo spazio tra le due linee è sia uno spreco di capacità che un'assicurazione contro una cattiva esperienza utente dovuta alla limitazione della larghezza di banda della rete.

DynamoDB fornisce la scalabilità automatica per le tabelle con capacità assegnata, che bilancerà automaticamente questo valore per conto dell'utente. Ciò consente di tenere traccia della capacità consumata durante il giorno e di impostare la capacità della tabella in base a poche variabili.

Console DynamoDB. La capacità assegnata e la scalabilità automatica sono abilitate. L'utilizzo target è impostato su 70.
Unità di capacità minima

È possibile impostare la capacità minima di una tabella per ridurre la limitazione della larghezza di banda della rete, ma ciò non ridurrà il costo della tabella. Se la tabella presenta periodi di basso utilizzo seguiti da un improvviso picco di utilizzo elevato, l'impostazione del valore minimo può impedire che la scalabilità automatica imposti la capacità della tabella su un valore troppo basso.

Unità di capacità massima

È possibile impostare la capacità massima di una tabella per limitare un dimensionamento della tabella maggiore del previsto. Valuta la possibilità di applicare un valore massimo per le tabelle di sviluppo o di test in cui non si desideri eseguire test di carico su larga scala. Puoi impostare un numero massimo per qualsiasi tabella, ma assicurati di valutare regolarmente questa impostazione rispetto alla capacità di base della tabella quando la usi in produzione per evitare una limitazione della larghezza di banda della rete accidentale.

Utilizzo di destinazione

L'impostazione dell'utilizzo di destinazione della tabella è il mezzo principale per l'ottimizzazione dei costi per una tabella con capacità assegnata. L'impostazione di un valore di percentuale inferiore aumenterà il livello di assegnazione eccessiva della tabella, aumentando i costi ma riducendo il rischio di limitazione della larghezza di banda della rete. L'impostazione di un valore di percentuale superiore diminuirà l'assegnazione eccessiva della tabella, aumentando però il rischio di limitazione della larghezza di banda della rete.

Fattori aggiuntivi da valutare nella scelta di una modalità di capacità della tabella

Quando si decide tra le due modalità, ci sono alcuni fattori ulteriori che vale la pena valutare.

Capacità riservata

Per le tabelle di capacità assegnate, DynamoDB offre la possibilità di acquistare capacità riservata per la capacità di lettura e scrittura (le unità di capacità di scrittura replicate (WCUr) e le tabelle Standard-IA non sono attualmente idonee). Se hai scelto di acquistare prenotazioni per questa capacità, puoi ridurre il costo della tabella di una percentuale significativa.

Quando decidi tra le due modalità della tabella, valuta quanto questo ulteriore sconto influirà sul costo della tabella. In molti casi, anche un carico di lavoro relativamente imprevedibile può essere più economico da eseguire su una tabella con capacità assegnata in eccesso e con capacità riservata.

Miglioramento della prevedibilità del carico di lavoro

In alcune situazioni, un carico di lavoro può avere un modello sia prevedibile che imprevedibile. Sebbene questo possa essere facilmente supportato da una tabella on demand, i costi saranno probabilmente migliori se è possibile migliorare i modelli imprevedibili nel carico di lavoro.

Una delle cause più comuni di questi modelli è l'importazione in batch. Questo tipo di traffico può spesso superare la capacità di base della tabella a tal punto che nell'esecuzione si potrebbe verificare una limitazione della larghezza di banda della rete. Per mantenere un carico di lavoro come questo in esecuzione su una tabella con capacità assegnata, valuta le seguenti opzioni:

  • Se il batch viene eseguito in orari pianificati, è possibile pianificare un aumento della capacità di scalabilità automatica prima dell'esecuzione

  • Se il batch si verifica in modo casuale, prova a prolungare il tempo di esecuzione anziché eseguirlo il più velocemente possibile

  • Aggiungete un periodo di accelerazione all'importazione in cui la velocità di importazione inizia in modo ridotto ma aumenta lentamente nell'arco di alcuni minuti fino a quando la scalabilità automatica non ha avuto l'opportunità di iniziare a regolare la capacità della tabella