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à senza server 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, il cluster deve disporre anche del set di parametri. ServerlessV2ScalingConfiguration
Il ServerlessV2ScalingConfiguration
parametro è composto da due valori che definiscono l'intervallo di capacità di scalabilità senza server di qualsiasi istanza serverless del cluster:
MinCapacity
— La capacità di scalabilità minima di qualsiasi istanza serverless di DocumentDB nel cluster.MaxCapacity
— La capacità di scalabilità massima di tutte le istanze serverless di DocumentDB nel cluster.
Scelta dell'MinCapacity
impostazione per un cluster serverless DocumentDB
Si è tentati di scegliere sempre 0,5 per. MinCapacity
Questo valore consente all'istanza di ridimensionarsi fino alla capacità minima quando è completamente inattiva, pur rimanendo attiva. Tuttavia, a seconda di come utilizzi 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 raggiunga rapidamente 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 si modifica la classe di istanza delle istanze in previsione di un carico di lavoro particolarmente elevato o basso, è possibile utilizzare tale esperienza per effettuare una stima approssimativa dell'intervallo di capacità serverless DocumentDB equivalente. Per determinare la dimensione della memoria di un tipo di istanza Amazon DocumentDB di cui è stato effettuato il provisioning, consulta. Limiti di istanze
Ad esempio, supponiamo di utilizzare la classe di
db.r6g.xlarge
istanza quando il cluster ha un carico di lavoro ridotto. Quella classe di istanza ha 32 GiB di memoria. Pertanto, è possibile specificare un numeroMinCapacity
di 16 per configurare un'istanza serverless in grado di ridimensionarsi 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 l'db.r6g.xlarge
istanza venga talvolta sottoutilizzata.Se l'applicazione funziona in modo più efficiente quando le istanze hanno una certa quantità di dati nella cache 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. In caso contrario, alcuni dati vengono rimossi dalla cache buffer quando le istanze serverless vengono ridotte a una dimensione di memoria inferiore. Quindi, quando le istanze vengono ridimensionate di nuovo, le informazioni vengono lette nel tempo nella cache buffer. Se la quantità di dati da I/O riportare nella cache buffer è notevole, potrebbe essere più efficace scegliere un valore DCU minimo più elevato. 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 quanto e quanto velocemente scalare quando la capacità attuale non è drasticamente inferiore alla capacità richiesta.
Se il carico di lavoro assegnato presenta 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.
In particolare, consigliamo il seguente valore minimo da utilizzare con
MinCapacity
le funzionalità specificate (questi consigli sono soggetti a modifiche):Performance Insights — 2 DCUs
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 con scalabilità 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 Reader nei livelli di promozione 2—15 presentano problemi di prestazioni, prendete in considerazione l'aumento della capacità minima del cluster. Per ulteriori informazioni su come modificare la scalabilità delle istanze Reader, in base alle esigenze dell'autore o indipendentemente, consulta. Visualizzazione e modifica del livello di promozione dei lettori serverless
Se disponete di un cluster con istanze di lettura serverless di DocumentDB, i lettori non si adattano alla stessa scala dell'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. Si consiglia di impostare 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 minimo e massimo. Quando la capacità corrente 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 DCU minima. In questo modo, un'istanza inattiva può tornare alla capacità massima più rapidamente.
Alcuni limiti di istanza sono determinati dalla capacità corrente dell'istanza serverless, ad esempio il limite delle connessioni, il limite del cursore e il limite delle transazioni aperte. Se la capacità attuale dell'istanza è ridotta, anche i limiti saranno altrettanto piccoli. Se questi limiti rappresentano un problema quando l'istanza serverless viene ridotta al suo
MinCapacity
valore, valuta la possibilità diMinCapacity
aumentarla a un valore più alto. Per ulteriori informazioni, consulta Limiti delle istanze serverless di Amazon DocumentDB.Inoltre, alcuni limiti di istanza sono limitati a un valore massimo inferiore se impostato su un valore inferiore o uguale a 1,0 DCUs, ad esempio il limite delle connessioni attive, il limite del cursore e il limite delle transazioni aperte.
MinCapacity
Se questi limiti massimi non sono sufficienti per il tuo carico di lavoro, utilizza unMinCapacity
valore di almeno 1,5. DCUs Per ulteriori informazioni, consulta Limiti delle istanze serverless di Amazon DocumentDB.
Per istruzioni su come modificare la configurazione di scalabilità di un cluster, vedere. Gestione senza server di Amazon DocumentDB
Scelta dell'MaxCapacity
impostazione per un cluster serverless DocumentDB
Si è tentati di scegliere sempre un valore elevato per l'impostazione massima della capacità serverless di DocumentDB. Una grande capacità massima 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 almeno 1,0 DCUs e deve essere al massimo 256 DCUs.
Ti consigliamo di monitorare la scalabilità e l'utilizzo delle risorse delle istanze serverless. Se l'istanza serverless viene spesso scalata fino alla capacità massima e soddisfa i limiti delle risorse (ad esempio quando la
DCUUtilization
metrica è pari a 100,0), ti consigliamo di selezionare un valore più alto.MaxCapacity
Per ulteriori informazioni, consulta Monitoraggio di Amazon DocumentDB senza server.Se in genere si modifica la classe di istanza delle istanze assegnate in previsione di un carico di lavoro particolarmente elevato o basso, è possibile utilizzare tale esperienza per stimare l'intervallo di capacità serverless DocumentDB equivalente. Per determinare la dimensione della memoria delle istanze di Amazon DocumentDB assegnate, consulta. Limiti di istanze
Ad esempio, supponiamo di utilizzare la classe di
db.r6g.4xlarge
istanza 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. Potresti specificare un valore leggermente più alto per consentire all'istanza di scalare ulteriormente nel caso in cui a volte l'db.r6g.4xlarge
istanza 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 nel cluster sono presenti n istanze serverless, la capacità teorica massima che il cluster può consumare in qualsiasi momento è n volte la massima impostazione DCU 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 tenere conto del fatto che non è necessario scalare ogni istanza di lettura come se il cluster contenesse una sola 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 impostazioni che aumentano l'utilizzo della memoria per ogni istanza, tenete conto di tale memoria quando decidete il valore DCU massimo. Tali impostazioni includono quelle per Performance Insights. Assicurati che il valore DCU massimo consenta alle istanze serverless di scalare sufficientemente da gestire il carico di lavoro quando vengono utilizzate tali funzionalità. 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, Evitare gli errori out-of-memory vedi (sotto).
In particolare, consigliamo di utilizzare le seguenti caratteristiche
MaxCapacity
minime con le funzionalità specificate (queste raccomandazioni sono soggette a modifiche):Creazione di istanze serverless su un cluster con un grande volume di dati — 2 DCUs (inclusa la creazione di istanze serverless come parte di un ripristino del cluster).
Alcuni limiti di istanza sono determinati dalla capacità corrente dell'istanza, ad esempio il limite delle connessioni, il limite del cursore e il limite delle transazioni aperte. Quando scegli il
MaxCapacity
valore per il tuo carico di lavoro, assicurati di tenere a mente questi limiti di istanza per evitare di essere ostacolato 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 senza server di Amazon DocumentDB
Evitare gli errori out-of-memory
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 assume questo stato quando si riavvia frequentemente a causa di errori. out-of-memory Amazon DocumentDB registra un evento quando si verifica questo tipo di riavvio. Per visualizzare gli eventi relativi alle risorse, consultaVisualizzazione degli eventi di Amazon DocumentDB. Un utilizzo della memoria insolitamente elevato può verificarsi a causa del sovraccarico dovuto all'attivazione di impostazioni come Performance Insights. Può anche derivare da un carico di lavoro intenso sull'istanza o dalla gestione dei metadati associati a un gran numero di oggetti dello schema.
Se la pressione della memoria diminuisce in modo che l'istanza non raggiunga molto spesso la sua capacità massima, Amazon DocumentDB modifica automaticamente lo stato dell'istanza rendendolo 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à DocumentDB (DCU) 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 può 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 può 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 non la utilizzi. In tal caso, puoi disattivarla. In alternativa, puoi regolare i valori di capacità minima e massima per il cluster a un livello superiore 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 derivante dalle query di sola lettura su più istanze.
Perché la mia istanza serverless non si sta ridimensionando?
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 la scalabilità del database fino alla capacità minima. Le caratteristiche principali comprendono:
Se un'istanza reader non è scalabile al minimo e mantiene una capacità uguale o superiore a quella dell'istanza writer, controlla il livello di priorità dell'istanza reader. Le istanze di lettura serverless di DocumentDB di livello 0 o 1 vengono 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 non riesce ancora a ridurre fino la capacità minima configurata, interrompi e riavvia il database per recuperare eventuali frammenti di memoria che potrebbero essersi accumulati nel tempo. L'arresto e l'avvio di un database comportano tempi di inattività, quindi consigliamo di farlo raramente.