Specifiche di cluster e nodi

Questa pagina descrive le specifiche di cluster e nodi per le istanze di Memorystore for Redis Cluster. Per istruzioni su come creare un'istanza, consulta Creare istanze.

Scegliere un tipo di nodo

Tutti gli shard nel cluster utilizzano lo stesso tipo di nodo a tua scelta. Il tipo di nodo migliore per il tuo cluster dipende dai tuoi requisiti in termini di prezzo, prestazioni e capacità dello spazio delle chiavi.

Il tipo di nodo redis-shared-core-nano è destinato ai carichi di lavoro di piccole dimensioni. Questo tipo di nodo offre prestazioni variabili e non ha uno SLA, il che lo rende inadatto ai carichi di lavoro di produzione.

Il tipo di nodo redis-standard-small ti consente di eseguire il provisioning di cluster di piccole dimensioni e di aumentare le dimensioni del cluster con incrementi più piccoli a costi potenzialmente inferiori rispetto ad altri tipi di nodi. redis-standard-small offre anche il vantaggio di distribuire lo spazio delle chiavi su più nodi con un numero totale di vCPU più elevato. Questo offre un miglioramento del rapporto prezzo-prestazioni rispetto a redis-highmem-medium, a condizione che la capacità totale dello spazio delle chiavi dei nodi più piccoli sia sufficiente per le tue esigenze di dati.

Se hai carichi di lavoro che richiedono una velocità di elaborazione più elevata rispetto alla memoria, scegli il tipo di nodo redis-highcpu-medium. Se hai bisogno di una capacità maggiore di quella fornita da redis-highmem-medium, ti consigliamo di scegliere i tipi di nodo redis-standard-large, redis-highmem-xlarge o redis-highmem-2xlarge. Quando aggiungi vCPU a nodi sempre più grandi (scalabilità verticale), le prestazioni di Redis potrebbero non scalare in modo lineare. Invece, per ottenere un miglior rapporto prezzo prestazioni, ti consigliamo di fare lo scale out aggiungendo altri nodi a un cluster.

Specifiche del tipo di nodo

La capacità e le caratteristiche del nodo dipendono dal tipo di nodo scelto:

Capacità dello spazio delle chiavi e overhead riservato

Tipo di nodo Capacità dello spazio delle chiavi scrivibile predefinita Capacità totale del nodo
redis-shared-core-nano 1,12 GB 1,4 GB
redis-standard-small 5,2 GB 6,5 GB
redis-highmem-medium 10,4 GB 13 GB
redis-highcpu-medium 10,4 GB 13 GB
redis-standard-large 20,8 GB 26 GB
redis-highmem-xlarge 46,4 GB 58 GB
redis-highmem-2xlarge 88 GB 110 GB

Memorystore riserva automaticamente una parte della capacità dell'istanza per evitare errori di memoria insufficiente (OOM). In questo modo, la lettura e la scrittura delle chiavi sono fluide. I limiti di memoria e i dettagli dello spazio di archiviazione sono i seguenti:

  • Personalizzare lo spazio di archiviazione: anche se ti consigliamo di utilizzare le impostazioni predefinite, hai la possibilità di modificare la quantità di spazio di archiviazione riservato utilizzando la configurazione maxmemory. Per informazioni su maxmemory, consulta Configurazioni delle istanze supportate.

  • Quanto spazio di archiviazione è disponibile? Fai riferimento alla colonna Capacità dello spazio delle chiavi scrivibile predefinita della tabella precedente. Questa mostra la quantità di spazio di archiviazione disponibile per le chiavi per impostazione predefinita.

  • Massimizzare lo spazio di archiviazione Se vuoi ottenere la massima quantità di spazio di archiviazione possibile, la colonna Capacità totale del nodo mostra il limite di spazio di archiviazione quando imposti la configurazione maxmemory al 100%. Tuttavia, non ti consigliamo di scegliere un valore maxmemory superiore all'impostazione predefinita.

  • Il tipo di nodo redis-shared-core-nano ha un limite rigido di 1, 12 GB e non può essere modificato con la configurazione maxmemory.

Caratteristiche del nodo

Tipo di nodo Numero di vCPU SLA offerto Numero predefinito di connessioni client Numero massimo di connessioni client Memoria massima per i client (configurazione maxmemory-clients )
redis-shared-core-nano 0,5 No 5000 5000 12%
redis-standard-small 2 16.000 32.000 7%
redis-highmem-medium 2 32.000 64.000 7%
redis-highcpu-medium 8 32.000 64.000 7%
redis-standard-large 8 32.000 64.000 7%
redis-highmem-xlarge 8 64.000 64.000 4%
redis-highmem-2xlarge 16 64.000 64.000 4%

Più vCPU (CPU virtuali) selezioni per il cluster, migliori saranno le prestazioni. Se il cluster esegue carichi di lavoro che richiedono molte risorse, seleziona un tipo di nodo con un numero di vCPU più elevato (ad esempio, redis-highmem-xlarge). Se il cluster esegue attività meno impegnative, seleziona un tipo di nodo con un numero di vCPU inferiore (ad esempio, redis-highmem-medium).

Scalare un'istanza

Quando crei un'istanza di Memorystore for Redis Cluster, scegli un tipo di nodo per l'istanza e specifichi il numero di shard per l'istanza. Dopo aver creato l'istanza e man mano che cambiano le esigenze di capacità dell'istanza, potresti dover scalare l'istanza nei seguenti modi:

  • Modifica il numero di shard per l'istanza. Questa è la scalabilità orizzontale. Per scalare orizzontalmente un'istanza, esegui una delle seguenti azioni:
    • Aggiungi shard all'istanza. Questa operazione è detta scale out dell'istanza.
    • Rimuovi shard dall'istanza. Questa operazione è detta scale in dell'istanza.
  • Modifica il tipo di nodo per l'istanza. Questa è la scalabilità verticale. Per scalare verticalmente un'istanza, modifica il tipo di nodo dell'istanza in uno dei seguenti tipi di nodo:
    • Passa a un tipo di nodo più grande. Questa operazione è detta scale up dell'istanza.
    • Passa a un tipo di nodo più piccolo. Questa operazione è detta scale down dell'istanza.

Specifiche del cluster

Questa sezione mostra le capacità minime e massime del cluster in base alla forma del cluster, al tipo di nodo e al numero di repliche.

Capacità scrivibile minima

La capacità scrivibile è la quantità di spazio di archiviazione disponibile per la scrittura delle chiavi. È uguale alla dimensione di un nodo dell'istanza. Pertanto, a seconda del tipo di nodo, la capacità scrivibile minima è compresa tra 1,4 GB e 110 GB. La capacità scrivibile minima non è influenzata dal numero di repliche scelto.

Capacità scrivibile massima

Tipo e dimensioni del nodo Capacità massima con una forma del cluster di 250 nodi primari e 0 repliche per nodo Capacità massima con una forma del cluster di 125 nodi primari e 1 replica per nodo Capacità massima con una forma del cluster di 83 nodi primari e 2 repliche per nodo Capacità massima con una forma del cluster di 62 nodi primari e 3 repliche per nodo Capacità massima con una forma del cluster di 50 nodi primari e 4 repliche per nodo Capacità massima con una forma del cluster di 41 nodi primari e 5 repliche per nodo
redis-con core condiviso-nano - 1,4 GB 350 GB 175 GB 116,2 GB 86,8 GB 70 GB 57,4 GB
redis-standard-small - 6,5 GB 1625 GB 812,5 GB 539,5 GB 403 GB 325 GB 266,5 GB
redis-highmem-medium - 13 GB 3250 GB 1625 GB 1079 GB 806 GB 650 GB 533 GB
redis-highcpu-medium - 13 GB 3250 GB 1625 GB 1079 GB 806 GB 650 GB 533 GB
redis-standard-large - 26 GB 6500 GB 3250 GB 2158 GB 1612 GB 1300 GB 1066 GB
redis-highmem-xlarge - 58 GB 14.500 GB 7250 GB 4814 GB 3596 GB 2900 GB 2378 GB
redis-highmem-2xlarge - 110 GB 27.500 GB 13.750 GB 9130 GB 6820 GB 5500 GB 4510 GB

Prestazioni

L'utilizzo dello strumento di benchmarking OSS memtier nella regione us-central1 ha prodotto 120.000-130.000 operazioni al secondo per nodo con 2 vCPU (redis-standard-small e redis-highmem-medium) con latenza in microsecondi e dimensioni dei dati di 1 KiB.

Ti consigliamo di eseguire il tuo benchmarking con carichi di lavoro reali o sintetici che assomigliano al traffico di produzione. Inoltre, ti consigliamo di dimensionare i cluster con un buffer (o "margine") per i picchi di carico di lavoro o il traffico imprevisto. Per ulteriori indicazioni, consulta Best practice per Memorystore for Redis Cluster.

Endpoint del cluster

Questa sezione spiega i due endpoint di ogni istanza.

Endpoint di rilevamento

Ogni istanza ha un endpoint di rilevamento a cui si connette il client. Si tratta di una combinazione di un indirizzo IP e un numero di porta. Per istruzioni su come trovare l'endpoint di rilevamento del cluster, consulta Visualizzare l'endpoint di rilevamento del cluster.

Il client lo utilizza anche per il rilevamento dei nodi. Il client utilizza l'endpoint di rilevamento per recuperare la topologia del cluster dell'istanza per eseguire il bootstrap dei client del cluster Redis OSS e mantenerli aggiornati in stato stazionario. La topologia del cluster risultante fornisce gli endpoint dei nodi Redis (combinazioni di IP e porta) da memorizzare nella cache in memoria dal client del cluster Redis. Il client si occupa quindi degli aggiornamenti e dei reindirizzamenti automaticamente senza che sia necessaria alcuna altra modifica dell'applicazione. Per informazioni sul comportamento di rilevamento dei client e sulle best practice, consulta Rilevamento dei client.

L'endpoint di rilevamento è a elevata disponibilità perché è supportato da più nodi Redis in più zone per gestire la topologia del cluster. La gestione della topologia tramite l'endpoint è affidabile anche in caso di errori dei nodi di backend o aggiornamenti dei nodi.

L'endpoint di rilevamento ha il seguente comportamento:

  1. L'endpoint di rilevamento del cluster rimane invariato durante il ciclo di vita dell'istanza del cluster, anche durante la manutenzione o qualsiasi altra azione intrapresa, ad esempio lo scale in o lo scale out o la modifica del numero di repliche.

  2. Gli endpoint dei nodi Redis possono cambiare e possono essere riciclati man mano che i nodi vengono aggiunti e rimossi nel tempo. Idealmente, dovresti utilizzare un client del cluster Redis in grado di gestire automaticamente queste modifiche tramite aggiornamenti e reindirizzamenti della topologia. Esempi di client del cluster Redis sono disponibili in Esempi di codice delle librerie client. L'applicazione non deve avere dipendenze o presupposti che gli endpoint dei nodi rimarranno invariati per un determinato cluster.

Endpoint dati

Oltre all'endpoint di rilevamento, ogni cluster ha un endpoint dati. Questo endpoint è riservato a Memorystore for Redis Cluster per connettere il client ai nodi del cluster. Pertanto, non connetterti direttamente a questo endpoint.