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à.
Configurazione di scalabilità serverless di Amazon DocumentDB
Argomenti
Scelta dell'intervallo di capacità di scalabilità per un cluster serverless DocumentDB
Prima di aggiungere qualsiasi istanza serverless di DocumentDB a un cluster Amazon DocumentDB, anche il cluster deve avere il set di parametri. ServerlessV2ScalingConfiguration
Il ServerlessV2ScalingConfiguration parametro è composto da due valori che definiscono l'intervallo di capacità di scalabilità serverless di qualsiasi istanza serverless nel cluster:
MinCapacity— La capacità di scalabilità minima di qualsiasi istanza serverless di DocumentDB nel cluster.MaxCapacity— La capacità di scalabilità massima di qualsiasi istanza serverless di DocumentDB nel cluster.
Scelta dell'MinCapacityimpostazione per un cluster serverless DocumentDB
Si è tentati di scegliere sempre 0.5 per. MinCapacity Questo valore consente all'istanza di ridursi alla capacità minima quando è completamente inattiva, pur rimanendo attiva. Tuttavia, a seconda del modo in cui si utilizza il cluster e delle altre impostazioni configurate, una capacità minima diversa potrebbe essere la più efficace. Considera i seguenti fattori nella scelta dell'impostazione della capacità minima:
La velocità di scalabilità di un'istanza serverless di DocumentDB dipende dalla sua capacità attuale. Maggiore è la capacità attuale, più veloce sarà il relativo dimensionamento verso l'alto. Se hai bisogno che l'istanza si scali rapidamente fino a una capacità molto elevata, valuta la possibilità di impostare la capacità minima su un valore in cui la velocità di scalabilità soddisfi i tuoi requisiti.
Se in genere modifichi la classe di istanza delle tue istanze in previsione di un carico di lavoro particolarmente elevato o basso, puoi sfruttare questa esperienza per fare una stima approssimativa dell'intervallo di capacità serverless equivalente di DocumentDB. Per determinare la dimensione della memoria di un tipo di istanza Amazon DocumentDB su cui è stato effettuato il provisioning, consulta. Quote delle istanze
Ad esempio, supponiamo di utilizzare la classe di
db.r6g.xlargeistanza quando il cluster ha un carico di lavoro basso. Quella classe di istanza ha 32 GiB di memoria. Pertanto, puoi specificare un valore compresoMinCapacitytra 16 per configurare un'istanza serverless che può essere ridimensionata all'incirca fino a raggiungere la stessa capacità. Questo perché ogni DCU corrisponde a circa 2 GiB di memoria. È possibile specificare un valore leggermente inferiore per consentire all'istanza di ridimensionarsi ulteriormente nel caso in cui a volte l'db.r6g.xlargeistanza fosse sottoutilizzata.Se l'applicazione funziona in modo più efficiente quando le istanze hanno una certa quantità di dati nella cache del buffer, valuta la possibilità di specificare un'impostazione DCU minima in cui la memoria sia sufficientemente grande da contenere i dati a cui si accede di frequente. Altrimenti, alcuni dati vengono eliminati dalla cache del buffer quando le istanze serverless si riducono a una dimensione di memoria inferiore. Quindi, quando le istanze vengono ridimensionate, le informazioni vengono lette nuovamente nella cache del buffer nel tempo. Se la quantità di dati da I/O riportare nella buffer cache è notevole, potrebbe essere più efficace scegliere un valore DCU minimo più alto. Per ulteriori informazioni, consulta Dimensionamento delle istanze.
Se le istanze serverless di DocumentDB vengono eseguite per la maggior parte del tempo con una capacità particolare, valuta la possibilità di specificare un'impostazione di capacità minima inferiore a quella di base, ma non troppo inferiore. Le istanze serverless possono stimare in modo più efficace la quantità e la velocità di scalabilità quando la capacità attuale non è drasticamente inferiore alla capacità richiesta.
Se il carico di lavoro su cui è stato eseguito il provisioning ha requisiti di memoria troppo elevati per classi di istanze di piccole dimensioni come T3 o T4g, scegli un'impostazione DCU minima che fornisca una memoria paragonabile a un'istanza R5 o R6g.
Utilizza il seguente valore minimo
MinCapacityper le funzionalità specificate (soggetto a modifiche):Approfondimenti sulle prestazioni: 2 DCU
Cluster globali: 8 DCU (si applica solo al primario) Regione AWS
In Amazon DocumentDB, la replica avviene a livello di storage, quindi la capacità del lettore non influisce direttamente sulla replica. Tuttavia, per le istanze di lettura serverless di DocumentDB che si scalano in modo indipendente, assicurati che la capacità minima sia sufficiente per gestire i carichi di lavoro durante i periodi di scrittura intensivi per evitare la latenza delle query. Se le istanze di lettura nei livelli di promozione 2—15 presentano problemi di prestazioni, valuta la possibilità di aumentare la capacità minima del cluster. Per dettagli su come modificare la scalabilità delle istanze di lettura insieme a chi scrive o indipendentemente, consulta. Visualizzazione e modifica del livello di promozione dei lettori serverless
Se disponi di un cluster con istanze di lettura serverless di DocumentDB, i lettori non vengono scalati insieme all'istanza writer quando il livello di promozione dei lettori non è 0 o 1. In tal caso, l'impostazione di una capacità minima ridotta può comportare un eccessivo ritardo nella replica. Ciò è dovuto al fatto che le istanze di lettura potrebbero non avere capacità sufficiente per applicare le modifiche dell'istanza di scrittura quando il database è occupato. Imposta la capacità minima su un valore che rappresenti una quantità di memoria e CPU paragonabile a quella dell'istanza writer.
Il tempo impiegato da un'istanza serverless di DocumentDB per passare dalla capacità minima alla capacità massima dipende dalla differenza tra i valori DCU minimi e massimi. Quando la capacità attuale dell'istanza è elevata, DocumentDB serverless aumenta con incrementi maggiori rispetto a quando l'istanza parte da una capacità ridotta. Pertanto, se si specifica una capacità massima relativamente elevata e l'istanza trascorre la maggior parte del tempo vicino a tale capacità, è consigliabile aumentare l'impostazione minima della DCU. In questo modo, un'istanza inattiva può tornare alla capacità massima più rapidamente.
Alcuni limiti di istanza sono determinati dalla capacità attuale dell'istanza serverless, ad esempio il limite di connessioni, il limite del cursore e il limite delle transazioni aperte. Se la capacità attuale dell'istanza è ridotta, anche i limiti saranno anch'essi ridotti. Se questi limiti rappresentano un problema quando l'istanza serverless viene ridotta al suo
MinCapacityvalore, valuta la possibilità diMinCapacityaumentarli a un valore più alto. Per ulteriori informazioni, consulta Limiti delle istanze serverless di Amazon DocumentDB.Inoltre, alcuni limiti di istanze sono limitati a un valore massimo inferiore se impostato su un valore inferiore o uguale a 1,0 DCU, ad esempio il limite delle connessioni attive, il limite del cursore e il limite delle transazioni aperte.
MinCapacitySe questi limiti massimi non sono sufficienti per il carico di lavoro, utilizza unMinCapacityvalore di almeno 1,5 DCU. Per ulteriori informazioni, consulta Limiti delle istanze serverless di Amazon DocumentDB.
Per istruzioni su come modificare la configurazione di scalabilità di un cluster, consulta. Gestione di Amazon DocumentDB senza server
Scelta dell'MaxCapacityimpostazione per un cluster serverless DocumentDB
Si è tentati di scegliere sempre un valore elevato per l'impostazione massima della capacità serverless di DocumentDB. Una capacità massima elevata consente all'istanza di scalare al massimo quando esegue un carico di lavoro intensivo. Un valore basso evita il rischio di dover sostenere di addebiti imprevisti. A seconda di come si utilizza il cluster e delle altre impostazioni configurate, il valore più efficace potrebbe essere maggiore o minore basso rispetto a quello originariamente individuato. Considera i seguenti fattori nella scelta dell'impostazione della capacità massima:
La capacità massima deve essere almeno pari alla capacità minima. Puoi impostare lo stesso valore per la capacità minima e la capacità massima. Tuttavia, in questo caso la capacità non aumenta né diminuisce mai. Pertanto, a parte gli scenari di test, l'uso di valori identici per la capacità minima e massima non è appropriato.
La capacità massima deve essere di almeno 1,0 DCU e deve essere al massimo di 256 DCU.
Monitora la scalabilità e l'utilizzo delle risorse delle tue istanze serverless. Se la tua istanza serverless viene spesso scalata fino alla capacità massima e soddisfa i vincoli di risorse (ad esempio, quando la
DCUUtilizationmetrica è pari a 100,0), seleziona un valore più alto.MaxCapacityPer ulteriori informazioni, consulta Monitoraggio di Amazon DocumentDB senza server.Se in genere modifichi la classe di istanze delle istanze assegnate in previsione di un carico di lavoro particolarmente elevato o basso, puoi utilizzare tale esperienza per stimare l'intervallo di capacità serverless equivalente di DocumentDB. Per determinare la dimensione della memoria delle istanze Amazon DocumentDB sottoposte a provisioning, consulta. Quote delle istanze
Ad esempio, supponiamo di utilizzare la classe di
db.r6g.4xlargeistanza quando il cluster ha un carico di lavoro elevato. Quella classe di istanza ha 128 GiB di memoria. Pertanto, è possibile specificare un'impostazione DCU massima di 64 per configurare un'istanza serverless in grado di scalare fino a circa la stessa capacità. Questo perché ogni DCU corrisponde a circa 2 GiB di memoria. È possibile specificare un valore leggermente più alto per consentire all'istanza di scalare ulteriormente nel caso in cui a volte l'db.r6g.4xlargeistanza non abbia una capacità sufficiente per gestire il carico di lavoro in modo efficace.Se hai un limite di budget per l'utilizzo del database, scegli un valore che rimanga entro tale limite anche se tutte le istanze serverless funzionano sempre alla massima capacità. Ricorda che quando hai n istanze serverless nel tuo cluster, la capacità serverless massima teorica che il cluster può consumare in qualsiasi momento è n volte l'impostazione DCU massima per il cluster. La quantità effettiva consumata potrebbe essere inferiore, ad esempio se alcune istanze di lettura vengono dimensionate in modo indipendente rispetto all'istanza di scrittura.
Se utilizzi istanze serverless reader per scaricare parte del carico di lavoro di sola lettura dall'istanza writer, potresti scegliere un'impostazione di capacità massima inferiore. Lo fai per capire che non è necessario scalare ogni istanza del lettore come se il cluster contenesse solo una singola istanza.
Supponiamo di voler evitare un uso eccessivo a causa di parametri del database configurati in modo errato o di query inefficienti nell'applicazione. In tal caso, è possibile evitare un uso eccessivo accidentale scegliendo un'impostazione di capacità massima inferiore a quella più alta possibile.
Se i picchi dovuti alla reale attività degli utenti sono rari ma si verificano, è possibile tenerne conto quando si sceglie l'impostazione della capacità massima. Se è prioritario che l'applicazione continui a funzionare con prestazioni e scalabilità complete, è possibile specificare un'impostazione di capacità massima superiore a quella osservata durante il normale utilizzo. Se l'applicazione può essere eseguita con una capacità di throughput effettiva ridotta durante picchi di attività molto estremi, è possibile scegliere un'impostazione di capacità massima leggermente inferiore. Assicurati di scegliere un'impostazione che disponga ancora di memoria e risorse CPU sufficienti per mantenere l'applicazione in esecuzione.
Se nel cluster attivate le impostazioni che aumentano l'utilizzo della memoria per ogni istanza, tenete conto di tale memoria quando decidete il valore massimo della DCU. Tali impostazioni includono quelle per Performance Insights e i cluster globali. Assicurati che il valore DCU massimo consenta alle istanze serverless di scalare abbastanza da gestire il carico di lavoro quando tali funzionalità vengono utilizzate. Per informazioni sulla risoluzione dei problemi causati dalla combinazione di un'impostazione DCU massima bassa e delle funzionalità di Amazon DocumentDB che impongono un sovraccarico di memoria, consulta (di seguito). Esclusione di errori dovuti all'esaurimento della memoria
Utilizza il seguente valore minimo
MaxCapacityper le funzionalità specificate (soggetto a modifiche):Creazione di istanze serverless su un cluster con un grande volume di dati: 2 DCU (inclusa la creazione di istanze serverless come parte di un ripristino del cluster).
Alcuni limiti di istanza sono determinati dalla capacità attuale dell'istanza, ad esempio il limite di connessioni, il limite del cursore e il limite delle transazioni aperte. Quando scegli il
MaxCapacityvalore per il tuo carico di lavoro, assicurati di tenere a mente questi limiti di istanze per evitare di trovarti bloccato da uno di questi limiti. Per ulteriori informazioni, consulta Limiti delle istanze serverless di Amazon DocumentDB.
Per istruzioni su come modificare la configurazione di scalabilità di un cluster, consulta. Gestione di Amazon DocumentDB senza server
Esclusione di errori dovuti all'esaurimento della memoria
Se una delle tue istanze serverless di DocumentDB raggiunge costantemente il limite della sua capacità massima, Amazon DocumentDB indica questa condizione impostando l'istanza su uno stato di parametri incompatibili. Sebbene l'istanza abbia lo stato di parametri incompatibili, alcune operazioni sono bloccate. Ad esempio, non è possibile aggiornare la versione del motore. Per ulteriori informazioni sullo stato di un'istanza Amazon DocumentDB, consulta. Monitoraggio dello stato di un'istanza Amazon DocumentDB
In genere, l'istanza passa a questo stato quando viene riavviata frequentemente a causa di errori di esaurimento della memoria. Amazon DocumentDB registra un evento quando si verifica questo tipo di riavvio. Per visualizzare gli eventi delle risorse, consultaVisualizzazione degli eventi di Amazon DocumentDB. L'utilizzo insolitamente elevato della memoria può verificarsi a causa del sovraccarico derivante dall'attivazione di impostazioni come Performance Insights. Può anche derivare da un carico di lavoro elevato sull'istanza o dalla gestione dei metadati associati a un numero elevato di oggetti dello schema.
Se la pressione della memoria diminuisce e l'istanza non raggiunge la sua capacità massima molto spesso, Amazon DocumentDB riporta automaticamente lo stato dell'istanza in disponibile.
Per gestire in modo ottimale questa situazione, è possibile eseguire alcune o tutte le seguenti azioni:
Aumenta il limite inferiore di capacità per le istanze serverless modificando il valore minimo dell'unità di capacità (DCU) di DocumentDB per il cluster. In questo modo si evitano i problemi in cui un database inattivo viene ridotto a una capacità di memoria inferiore a quella necessaria per le funzionalità attivate nel cluster. Dopo aver modificato le impostazioni DCU per il cluster, riavvia l'istanza serverless. In questo modo si valuta se Amazon DocumentDB è in grado di ripristinare lo stato su disponibile.
Aumenta il limite massimo di capacità per le istanze serverless modificando il valore DCU massimo per il cluster. Ciò consente di evitare problemi nel caso in cui un database occupato non sia in grado di eseguire il dimensionamento verso l'alto fino a una capacità con memoria sufficiente per le funzionalità attivate nel cluster e nel carico di lavoro del database. Dopo aver modificato le impostazioni DCU per il cluster, riavvia l'istanza serverless. In questo modo si valuta se Amazon DocumentDB è in grado di ripristinare lo stato su disponibile.
Disattivare le impostazioni di configurazione che richiedono un sovraccarico di memoria. Ad esempio, supponiamo di avere una funzionalità come Performance Insights attivata ma di non utilizzarla. In tal caso, puoi disattivarla. Oppure puoi aumentare i valori di capacità minima e massima del cluster per tenere conto della memoria utilizzata da questi tipi di funzionalità. Per le linee guida sulla scelta delle impostazioni di capacità minima e massima, consulta Scelta dell'intervallo di capacità di scalabilità per un cluster serverless DocumentDB.
Riduci il carico di lavoro sull'istanza. Ad esempio, puoi aggiungere istanze di lettura al cluster per distribuire il carico delle query di sola lettura su più istanze.
Perché la mia istanza serverless non viene ridimensionata?
In alcuni casi, DocumentDB serverless non si riduce alla capacità minima, anche senza carico sul database. Questo può accadere per i seguenti motivi:
Performance Insights può aumentare l'utilizzo delle risorse e impedire che il database si riduca alla capacità minima. Le caratteristiche principali comprendono:
Se un'istanza di lettura non viene ridotta al minimo e mantiene una capacità uguale o superiore a quella dell'istanza writer, controlla il livello di priorità dell'istanza del lettore. Le istanze di lettura serverless di DocumentDB di livello 0 o 1 sono mantenute a una capacità minima almeno pari a quella dell'istanza writer. Imposta il livello di priorità dell'istanza di lettura almeno su 2 in modo che possa essere aumentata o ridotta indipendentemente dall'istanza di scrittura. Per ulteriori informazioni, consulta Scalabilità senza server di Amazon DocumentDB.
I carichi di lavoro di database gravosi possono aumentare l'utilizzo delle risorse.
I volumi di database di grandi dimensioni possono aumentare l'utilizzo delle risorse. Amazon DocumentDB utilizza risorse di memoria e CPU per la gestione dei cluster. Amazon DocumentDB richiede più CPU e memoria per gestire cluster con volumi di database più grandi. Se la capacità minima del cluster è inferiore a quella minima richiesta per la gestione dei cluster, il cluster non verrà ridotto fino alla capacità minima.
L'attività di manutenzione in background può aumentare periodicamente l'utilizzo delle risorse.
Se il database continua a non essere ridimensionato fino alla capacità minima configurata, arrestalo e riavvialo per recuperare eventuali frammenti di memoria che potrebbero essersi accumulati nel tempo.
Nota
L'arresto e l'avvio di un database comportano tempi di inattività. Fatelo solo se necessario.