Valutazione della modalità di capacità della 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à.

Valutazione della modalità di capacità della 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. Per prendere una decisione è 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.

È possibile cambiare le tabelle dalla modalità con capacità allocata alla modalità on demand fino a quattro volte in una finestra variabile di 24 ore. È possibile passare le tabelle dalla modalità on demand alla modalità con capacità allocata in qualsiasi momento.

Modalità di capacità on demand

La modalità con capacità on demand è progettata per eliminare la necessità di pianificare o eseguire il provisioning della capacità di una 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).

DynamoDB on-demand pay-per-request offre prezzi per le richieste di lettura e scrittura in modo da pagare solo per ciò che si utilizza.

Modalità di capacità assegnata

La modalità con capacità allocata è un modello più tradizionale in cui è necessario definire la capacità disponibile per le richieste alla tabella direttamente o sfruttando il dimensionamento automatico. Poiché per la tabella viene allocata una capacità specifica in un dato momento, la fatturazione si basa sulla capacità allocata totale anziché sul numero di richieste utilizzate. Se si supera la capacità assegnata la tabella potrebbe rifiutare le richieste, con conseguente impatto negativo sull'esperienza utente delle applicazioni.

La modalità con capacità allocata richiede un monitoraggio continuo per trovare un bilanciamento al fine di evitare il provisioning eccessivo o insufficiente della tabella per mantenere contenuti sia la 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 nei seguenti grafici, la modalità on demand è la scelta migliore.

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

  • Modello di traffico che si evolve nel tempo

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

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

  • Scende a zero o al di sotto del 30% del picco in una determinata ora

Grafici per un carico di lavoro variabile e imprevedibile con picchi e periodi di scarsa attività. Grafici per un carico di lavoro variabile e imprevedibile con picchi e periodi di scarsa attività.

Per i carichi di lavoro che presentano i fattori indicati in precedenza, l’utilizzo del dimensionamento automatico per mantenere nella tabella una capacità sufficiente per rispondere ai picchi di traffico comporterà probabilmente un provisioning eccessivo della tabella e un costo superiore al necessario oppure il fatto che la tabella presenti un provisioning insufficiente e che le richieste vengano sottoposte a limitazione (della larghezza di banda della rete) inutilmente. La modalità con capacità on demand è la scelta migliore perché è in grado di gestire le fluttuazioni del traffico senza dover prevedere o regolare la capacità.

Con il modello di pay-per-request prezzo della modalità on demand, non devi preoccuparti della capacità inattiva perché paghi solo per il throughput effettivamente utilizzato. La fatturazione viene effettuata in base alle richieste di lettura o scrittura utilizzate, quindi i costi riflettono direttamente l’utilizzo effettivo, semplificando il bilanciamento delle spese e delle prestazioni. Facoltativamente è anche possibile configurare il throughput massimo di lettura o scrittura (o entrambe) al secondo per singole tabelle on demand e indici secondari globali al fine di mantenere costi e utilizzo limitati. Per ulteriori informazioni, consulta Throughput massimo per tabelle on demand.

Quando selezionare la modalità di capacità assegnata

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

Nota

Si consiglia di esaminare le metriche con una certa granularità, ad esempio per 14 giorni, prima di intervenire sulla capacità allocata.

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

  • Traffico costante, prevedibile e 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, è possibile impostare la capacità allocata della tabella perché sia relativamente vicina alla capacità effettivamente utilizzata. 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. Se si è in grado di prevedere i requisiti di throughput dell’applicazione e si preferisce la prevedibilità dei costi derivante dal controllo della capacità di lettura e scrittura, allora può essere opportuno continuare a utilizzare le tabelle con provisioning.

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. Quando si utilizza il dimensionamento automatico, la tabella subirà un provisioning eccessivo e sarà necessario regolare con precisione il rapporto tra il numero di limitazioni (della larghezza di banda della rete) e le unità di capacità con provisioning eccessivo per soddisfare le esigenze dei carichi di lavoro.

Console DynamoDB. La capacità allocata e il dimensionamento automatico sono abilitati. L’utilizzo di destinazione è 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.

Utilizzo della capacità allocata

Per determinare quando la modalità on demand costerebbe meno della capacità allocata, è utile esaminare l’utilizzo della capacità allocata, che si riferisce all’efficienza con cui vengono utilizzate le risorse allocate (o “con provisioning”). La modalità on demand costa meno per i carichi di lavoro con un utilizzo medio della capacità allocata inferiore al 35%. In molti casi, anche per carichi di lavoro con un utilizzo della capacità allocata superiore al 35%, può essere più conveniente utilizzare la modalità on demand, soprattutto se il carico di lavoro presenta periodi di bassa attività combinati a picchi occasionali.

Capacità riservata

Per le tabelle con capacità assegnata, DynamoDB offre la possibilità di acquistare capacità riservata per lettura e scrittura (le unità di capacità di scrittura replicate e le tabelle Standard-IA attualmente non sono idonee). La capacità riservata offre sconti significativi rispetto ai prezzi standard della capacità allocata.

Quando decidi tra le due modalità della tabella, valuta quanto questo ulteriore sconto influirà sul costo della tabella. In alcuni casi, può essere meno economicamente oneroso eseguire un carico di lavoro relativamente imprevedibile su una tabella con provisioning 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

  • Aggiungi un periodo di incremento all’importazione in cui la velocità dell’importazione inizia lentamente ma aumenta in modo graduale nell’arco di pochi minuti, fino a quando il dimensionamento automatico non abbia avuto l’opportunità di iniziare a regolare la capacità della tabella