Dimensionamento della capacità in un cluster database Neptune Serverless - Amazon Neptune

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à.

Dimensionamento della capacità in un cluster database Neptune Serverless

La configurazione di un cluster database Neptune Serverless è simile alla configurazione di un normale cluster con provisioning, con una configurazione aggiuntiva per le unità minime e massime per il dimensionamento, e con il tipo di istanza impostato su db.serverless. La configurazione di scalabilità è definita nelle unità di capacità di Neptune NCUs (), ciascuna delle quali è composta da 2 GiB (gibibyte) di memoria () insieme alla capacità del processore virtuale RAM (v) e alla rete associate. CPU È impostato come parte di un oggetto, rappresentato in questo modoServerlessV2ScalingConfiguration: JSON

"ServerlessV2ScalingConfiguration": { "MinCapacity": (minimum NCUs, a floating-point number such as 1.0), "MaxCapacity": (maximum NCUs, a floating-point number such as 128.0) }

In qualsiasi momento, ogni istanza di Neptune writer o reader ha una capacità misurata da un numero a virgola mobile che rappresenta il numero attualmente utilizzato da quell'NCUsistanza. Puoi utilizzare la CloudWatch ServerlessDatabaseCapacitymetrica a livello di istanza per scoprire quante istanze DB utilizza attualmente NCUs una determinata istanza DB e la NCUUtilizationmetrica per scoprire quale percentuale della sua capacità massima sta utilizzando l'istanza. Entrambe le metriche sono disponibili anche a livello di cluster database per mostrare l'utilizzo medio delle risorse per il cluster database nel suo complesso.

Quando crei un cluster DB Neptune Serverless, imposti sia il numero minimo che il numero massimo di unità di capacità Neptune () per tutte le istanze serverless. NCUs

Il NCU valore minimo specificato imposta la dimensione minima alla quale un'istanza serverless del cluster DB può ridursi e, allo stesso modo, il NCU valore massimo stabilisce la dimensione massima alla quale può crescere un'istanza serverless. Il NCU valore massimo massimo che è possibile impostare è 128,0 e il valore minimo è 1,0NCUs. NCUs

Neptune monitora continuamente il carico su ogni istanza Neptune Serverless monitorandone l'utilizzo di risorse come memoria e rete. CPU Il carico viene generato dalle operazioni del database dell'applicazione, dall'elaborazione in background per il server e da altre attività amministrative.

Quando il carico su un'istanza serverless raggiunge il limite della capacità attuale oppure quando Neptune rileva altri problemi di prestazioni, l'istanza aumenta automaticamente le proprie dimensioni. Quando il carico sull'istanza diminuisce, la capacità si riduce fino alle unità di capacità minima configurate, con la capacità rilasciata prima della memoria. CPU Questa architettura consente il rilascio controllato e graduale delle risorse, oltre a gestire in modo efficace le fluttuazioni della domanda.

È possibile dimensionare un'istanza di lettura insieme all'istanza di scrittura oppure eseguire il dimensionamento separatamente impostando il livello di promozione per le istanze. Le istanze di lettura con livello di promozione 0 e 1 vengono dimensionate congiuntamente a quella di scrittura; in questo modo, la capacità delle istanze rimane delle dimensioni corrette per assumere rapidamente il controllo del carico di lavoro dall'istanza di scrittura in caso di failover. Le istanze di lettura con livello di promozione da 2 a 15 vengono dimensionate separatamente l'una dall'altra e anche dall'istanza di scrittura.

Se hai creato il tuo cluster Neptune DB come cluster Multi-AZ per garantire un'elevata disponibilità, Neptune Serverless ridimensiona le istanze in tutto e per tutto in base al carico del database. AZs Puoi impostare il livello di promozione di un'istanza di lettura in una zona di disponibilità secondaria su 0 o 1 affinché le dimensioni dell'istanza aumentino o diminuiscano in base alla capacità dell'istanza di scrittura nella zona di disponibilità principale, così che l'istanza di lettura sia pronta ad assumere il controllo del carico di lavoro attuale in qualsiasi momento.

Nota

Lo storage per un cluster Neptune DB è costituito da sei copie di tutti i dati, distribuite su AZs tre, indipendentemente dal fatto che il cluster sia stato creato come cluster Multi-AZ o meno. La replica dell'archiviazione è gestita dal sottosistema di archiviazione e non è influenzata da Neptune Serverless.

Scelta di un valore della capacità minima per un cluster database Neptune Serverless

Il valore minimo che è possibile impostare per la capacità minima è. 1.0 NCUs

Assicurati di non impostare un valore minimo inferiore a quello richiesto dall'applicazione per funzionare in modo efficiente. Impostare un valore troppo basso può comportare una maggiore frequenza di timeout in determinati carichi di lavoro ad alto consumo di memoria.

Impostare il valore minimo più basso possibile può far risparmiare denaro, poiché in tal modo il cluster usa la quantità minima di risorse quando la domanda è bassa. Tuttavia, se il carico di lavoro tende a fluttuare drasticamente (da molto basso a molto alto), potresti voler impostare un valore minimo più alto, poiché così facendo le dimensioni delle istanze Neptune Serverless aumenterebbero più velocemente.

Il motivo è che Neptune sceglie gli incrementi di dimensionamento in base alla capacità attuale. Se la capacità attuale è bassa, all'inizio Neptune aumenta le dimensioni lentamente. Con un valore minimo più alto, Neptune inizia con un incremento di dimensionamento maggiore e può quindi aumentare le dimensioni più velocemente per far fronte a un aumento notevole e improvviso del carico di lavoro.

Scelta di un valore della capacità massima per un cluster database Neptune Serverless

Il valore massimo che è possibile impostare per la capacità massima è 128.0NCUs, mentre il valore minimo che è possibile impostare per la capacità massima è 2.5NCUs. Il valore della capacità massima (qualsiasi esso sia) deve essere pari almeno al valore impostato per la capacità minima.

Come regola generale, imposta un valore della capacità massima abbastanza alto da poter gestire il carico di picco che l'applicazione potrebbe riscontrare. Impostare un valore troppo basso può comportare una maggiore frequenza di timeout in determinati carichi di lavoro ad alto consumo di memoria.

Il vantaggio di impostare il valore più alto possibile per la capacità massima è che l'applicazione sarà probabilmente in grado di gestire anche i carichi di lavoro più imprevisti. Lo svantaggio invece consiste nel fatto che si perde in una certa misura la capacità di prevedere e controllare i costi delle risorse. Un picco imprevisto nella domanda può determinare costi nettamente superiori a quelli previsti dal budget.

Il vantaggio di un valore della capacità massima attentamente mirato è che consente di soddisfare i picchi di domanda, ponendo al contempo un limite ai costi di calcolo di Neptune.

Nota

La modifica dell'intervallo di capacità di un cluster database Neptune Serverless comporta modifiche ai valori predefiniti di alcuni parametri di configurazione. Neptune può applicare immediatamente alcune di queste nuove impostazioni predefinite, ma alcune modifiche ai parametri dinamici diventano effettive solo dopo un riavvio. Lo stato pending-reboot indica che è necessario un riavvio per applicare le modifiche ad alcuni parametri.

Uso della configurazione esistente per stimare i requisiti serverless

Se in genere modifichi la classe delle istanze di database con provisioning per soddisfare carichi di lavoro eccezionalmente elevati o ridotti, puoi utilizzare tale esperienza per calcolare una stima approssimativa dell'equivalente intervallo di capacità per Neptune Serverless.

Calcolo di una stima per l'impostazione della capacità minima più appropriata

Puoi applicare le tue conoscenze relative al cluster database Neptune esistente per stimare l'impostazione della capacità minima serverless che funzionerà meglio.

Ad esempio, se il carico di lavoro assegnato presenta requisiti di memoria troppo elevati per classi di istanze DB di piccole dimensioni, ad esempio T3 oppureT4g, scegli un'NCUimpostazione minima che fornisca memoria paragonabile a una classe di istanze R6g DB R5 o DB.

Altrimenti, supponiamo di utilizzare la classe di istanza database db.r6g.xlarge quando un cluster ha un carico di lavoro ridotto. Questa classe di istanze DB ha 32 GiB di memoria, quindi puoi specificare un'NCUimpostazione minima di 16 per creare istanze serverless in grado di ridimensionarsi all'incirca fino alla stessa capacità (ognuna NCU corrisponde a circa 2 GiB di memoria). Se talvolta l'istanza db.r6g.xlarge è sottoutilizzata, potresti essere in grado di specificare un valore inferiore.

Se l'applicazione funziona in modo più efficiente quando le istanze DB possono contenere una determinata quantità di dati in memoria o nella cache buffer, è consigliabile specificare un'NCUimpostazione minima sufficientemente grande da fornire memoria sufficiente a tale scopo. In caso contrario, i dati potrebbero essere espulsi dalla cache del buffer quando le istanze serverless riducono le proprie dimensioni e devono essere riletti nella cache del buffer nel corso del tempo quando le istanze tornano ad aumentare le proprie dimensioni. Se la quantità di I/O necessaria per riportare i dati nella buffer cache è notevole, potrebbe essere utile scegliere un valore minimo NCU più elevato.

Se ritieni che le istanze serverless funzionino per la maggior parte del tempo a una determinata capacità, è consigliabile impostare la capacità minima su un valore leggermente inferiore a quello. Neptune Serverless può calcolare in modo più efficace una stima della quantità e della velocità dell'aumento di dimensioni quando la capacità attuale non è sensibilmente inferiore alla capacità richiesta.

In una configurazione mista, con un'istanza di scrittura con provisioning e più istanze di lettura Neptune Serverless, queste ultime non vengono dimensionate congiuntamente all'istanza di scrittura. Poiché le istanze si dimensionano in modo indipendente, l'impostazione di una capacità minima ridotta può comportare un eccessivo ritardo di replica. La capacità potrebbe non essere sufficiente per tenere il passo con le modifiche apportate dall'istanza di scrittura quando il carico di lavoro è ad alta intensità di scrittura. In questa situazione, imposta una capacità minima paragonabile a quella dell'istanza di scrittura. In particolare, se osservi un ritardo di replica nelle istanze di lettura che si trovano nei livelli di promozione da 2 a 15, è opportuno che tu aumenti l'impostazione della capacità minima per il cluster.

Calcolo di una stima per l'impostazione della capacità massima più appropriata

Puoi anche applicare le tue conoscenze relative al cluster database Neptune esistente per stimare l'impostazione della capacità massima serverless che funzionerà meglio.

Ad esempio, supponiamo di utilizzare la classe di istanza database db.r6g.4xlarge quando un cluster ha un carico di lavoro elevato. Questa classe di istanze DB ha 128 GiB di memoria, quindi è possibile specificare un'NCUimpostazione massima di 64 per configurare istanze Neptune Serverless equivalenti (ognuna corrisponde NCU a circa 2 GiB di memoria). Puoi specificare un valore più elevato per consentire all'istanza database di aumentare ulteriormente le proprie dimensioni nel caso in cui l'istanza db.r6g.4xlarge non riesca sempre a gestire il carico di lavoro.

Se i picchi imprevisti nel carico di lavoro sono rari, può essere opportuno impostare la capacità massima su un valore abbastanza elevato da mantenere invariate le prestazioni dell'applicazione anche durante tali picchi. D'altra parte, potresti voler impostare una capacità massima inferiore che consenta di ridurre la velocità di trasmissione effettiva durante i picchi insoliti, ma che al contempo permetta a Neptune di gestire i carichi di lavoro previsti senza problemi e con costi limitati.