Come faccio a scegliere il tipo e la dimensione di istanza corretti per il mio cluster ElastiCache per Redis?

6 minuti di lettura
0

Come faccio a selezionare la dimensione del nodo e la configurazione del cluster Amazon ElastiCache per Redis per i miei carichi di lavoro per ottenere le migliori prestazioni?

Breve descrizione

Quando devi selezionare una dimensione del nodo per il cluster ElastiCache e la configurazione del cluster, tieni presente quanto segue:

  • Quanta potenza di elaborazione della CPU è necessaria?
  • Quanti dati devo archiviare?
  • La dimensione del nodo selezionata sarà in grado di gestire il traffico di rete previsto?
  • Quale modalità di cluster devo scegliere?

Risoluzione

Quanta potenza di elaborazione della CPU è necessaria?

Valutazione delle opzioni di nodo

Esamina le opzioni di nodo disponibili. Poiché Redis è un processo a thread singolo, le prestazioni non aumentano quando si aggiungono CPU al nodo. La potenza del singolo nucleo della CPU sul nodo determina le prestazioni. Ogni tipo di nodo ha le proprie prestazioni di base. I tipi di nodi di ultima generazione forniscono più memoria e potenza di calcolo a un costo inferiore rispetto alle versioni precedenti. Ad esempio, le istanze M5 e R5 offrono prestazioni migliori a un costo inferiore rispetto alle istanze M4 e R4.

Benchmark dei nodi

È consigliabile eseguire il benchmark dei nodi per ottenere una stima delle prestazioni dell'istanza sul carico di lavoro previsto. Per fare ciò, usa l'utility redis-benchmark. Per informazioni sulle raccomandazioni di base, consulta Five workload characteristics to consider when right sizing Amazon ElastiCache Redis clusters (Cinque caratteristiche del carico di lavoro da considerare per il corretto dimensionamento dei cluster Amazon ElastiCache per Redis).

Quando esegui i test di benchmark, imita il carico di lavoro del traffico dell'applicazione, incluso il numero di richieste, la distribuzione delle chiavi e le dimensioni degli elementi. Monitora i parametri di Amazon CloudWatch per l'utilizzo della memoria, l'utilizzo del processore, i cache hit e i cache miss. Potresti notare che il tuo cluster non ha il tasso di successo che desideri o che le chiavi vengono eliminate troppo spesso. In questo caso, scegli una dimensione del nodo diversa con specifiche di memoria e CPU più grandi.

Poiché Redis è a thread singolo, moltiplica l'utilizzo della CPU riportato per il numero di nuclei della CPU per ottenere l'utilizzo effettivo. Ad esempio, una CPU a quattro nuclei che riporta un tasso di utilizzo del 20% è in realtà l'unico nucleo che Redis sta eseguendo con l'80% di utilizzo.

Quanti dati dovrò archiviare?

Per stimare le esigenze di archiviazione, moltiplica la dimensione media degli elementi da memorizzare nella cache per il numero di elementi presenti contemporaneamente nella cache. Per stimare le dimensioni degli elementi, serializza gli elementi della cache, conta i caratteri e poi dividi questa somma per il numero di partizioni nel tuo cluster.

Tieni presente il parametro di gruppo riserved-memory o reserved-memory-percent della tua versione di Redis. Questo parametro riserva memoria per l'uso di non dati come backup di sistema e stabilità generale del sistema. Per impostazione predefinita, questo valore è impostato al 25% della memoria massima. Consideralo quando determini quale dimensione è sufficiente per i tuoi dati.

Ad esempio, cache.r4.large ha 12,3 GB di memoria disponibile per l'uso. Poiché la memoria riservata è impostata al 25%, il nodo memorizza fino a 9,2 GB (12,3 x 75%) di dati. Il resto è riservato ad altre funzioni Redis e alla stabilità del sistema.

Il tipo di nodo selezionato sarà in grado di gestire il traffico di rete previsto?

Assicurati che il tipo di nodo selezionato sia in grado di gestire la quantità di dati inviati senza raggiungere il massimo della rete.

Per stabilire la velocità di trasmissione effettiva massima su un nodo ElastiCache, esegui un benchmark su un nodo Amazon Elastic Compute Cloud (Amazon EC2) simile.

Ad esempio, per un nodo cache.m4.large, esegui i test su un'istanza m4.large di EC2. Eseguendo questo test trovi la velocità di trasmissione effettiva massima teorica per il tuo nodo. Ottieni anche una stima della larghezza di banda che puoi trasferire tra il tuo client e il tuo nodo Redis. Un effetto collaterale comune della massimizzazione della rete è una linea piatta sul grafico della larghezza di banda, che indica che si sta esaurendo il proprio hardware. Per istruzioni sull'utilizzo di iperf3 per misurare le prestazioni di rete tra istanze, consulta How do I benchmark network throughput between Amazon EC2 Linux instances in the same Amazon VPC? (Come si esegue il benchmark della velocità di trasmissione effettiva di rete tra istanze Linux Amazon EC2 nello stesso Amazon VPC?)

Poiché i nodi ElastiCache sono simili alle loro controparti EC2, guarda le prestazioni di rete elencate per ogni tipo di istanza. Se si sta massimizzando la velocità di trasmissione effettiva di rete per il nodo, potrebbe essere necessario selezionare la dimensione del nodo successiva per migliorare le prestazioni di rete. Ad esempio, un'istanza m4.large ha una rete moderata. Tuttavia, se il carico di lavoro sta esaurendo la rete e le prestazioni risultano scadenti, devi identificare un nuovo tipo di nodo con prestazioni di rete migliori. Le prestazioni di rete migliori potrebbero essere elencate come Elevate o 10 Gigabit nella colonna Prestazioni di rete della pagina Prezzi.

Tieni presente che le prestazioni di rete si applicano anche al client. Se il tuo client è un t2.micro con prestazioni di rete da basse a moderate e stai inviando i dati a un m4.10xlarge, allora massimizza prima la velocità di trasmissione effettiva di rete sul tuo client.

Quale modalità di cluster devo scegliere?

La scelta della modalità giusta per il carico di lavoro dell'applicazione dipende dal traffico:

Se il carico principale sul cluster è costituito da applicazioni che leggono dati, puoi scegliere un cluster Redis (modalità cluster disattivata). Quindi ridimensiona il tuo cluster per supportare più operazioni di lettura aggiungendo repliche di lettura. È disponibile un massimo di 5 repliche di lettura. Tieni presente che i cluster disattivati in modalità cluster hanno una sola partizione. Pertanto, il tipo di nodo deve essere sufficientemente grande da contenere tutti i dati del cluster, oltre al sovraccarico necessario.

Se il carico sul cluster è elevato in termini di scrittura e il carico di lavoro in scrittura supera quello che un nodo può offrire, utilizza un cluster Redis (modalità cluster attivata). I cluster attivati in modalità cluster distribuiscono le tue chiavi tra più nodi primari. Pertanto le prestazioni di scrittura sono suddivise tra più nodi anziché in un singolo nodo.

Se disponi di un carico di lavoro di grandi dimensioni che richiede prestazioni estreme, utilizza un cluster attivato in modalità cluster con più partizioni e più repliche di lettura per ogni partizione. Ad esempio, è possibile creare un cluster con 15 partizioni e 5 repliche per nodo primario.


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa