Gestione della memoria riservata per Valkey e Redis OSS - Amazon ElastiCache

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

Gestione della memoria riservata per Valkey e Redis OSS

La memoria prenotata è la memoria destinata all'utilizzo diverso dai dati. Quando eseguono un backup o un failover, Valkey e Redis OSS utilizzano la memoria disponibile per registrare le operazioni di scrittura sul cluster mentre i dati del cluster vengono scritti nel file.rdb. Se non disponi di memoria sufficiente per tutte le scritture, il processo non va a buon fine. Di seguito, è possibile trovare informazioni sulle opzioni per la gestione della memoria riservata per ElastiCache (RedisOSS) e su come applicarle.

Qual è la quantità di memoria prenotata necessaria?

Se utilizzi una versione di Redis OSS precedente alla 2.8.22, riserva più memoria per i backup e i failover rispetto a Redis 2.8.22 o successiva. OSS Questo requisito è dovuto ai diversi modi in cui (Redis) implementa il processo di backup. ElastiCache OSS La regola generale è quella di riservare metà del maxmemory valore di un tipo di nodo per Redis OSS overhead per le versioni precedenti alla 2.8.22 e un quarto per le versioni Redis 2.8.22 e successive. OSS

A causa delle diverse modalità di ElastiCache implementazione del processo di backup e replica, la regola generale consiste nel riservare il 25% del valore di un tipo di nodo utilizzando il parametro. maxmemory reserved-memory-percent Questo è il valore predefinito e consigliato nella maggior parte dei casi.

Quando i tipi di istanze micro e piccole istanze burstable funzionano vicino maxmemory ai limiti, è possibile che si verifichi l'utilizzo dello swap. Per migliorare l'affidabilità operativa di questi tipi di istanze durante il backup, la replica e il traffico elevato, consigliamo di aumentare il valore del reserved-memory-percent parametro fino al 30% sui tipi di istanze di piccole dimensioni e fino al 50% sui tipi di micro istanze.

Per carichi di lavoro impegnativi in scrittura su ElastiCache cluster con suddivisione dei dati su più livelli, consigliamo di aumentare la memoria disponibile del nodo fino reserved-memory-percent al 50%.

Per ulteriori informazioni, consulta gli argomenti seguenti:

Parametri per gestire memoria prenotata

A partire dal 16 marzo 2017, Amazon ElastiCache fornisce due parametri che si escludono a vicenda per la gestione della memoria Valkey o Redis OSS e. reserved-memory reserved-memory-percent Nessuno di questi parametri fa parte della distribuzione Valkey o Redis. OSS

A seconda di quando sei diventato ElastiCache cliente, l'uno o l'altro di questi parametri è il parametro di gestione della memoria predefinito. Questo parametro si applica quando si crea un nuovo OSS cluster o gruppo di replica Valkey o Redis e si utilizza un gruppo di parametri predefinito.

  • Per i clienti che hanno iniziato prima del 16 marzo 2017: quando si crea un OSS cluster o un gruppo di replica Redis utilizzando il gruppo di parametri predefinito, il parametro di gestione della memoria è. reserved-memory In questo caso, zero (0) byte di memoria sono riservati.

  • Per i clienti che hanno iniziato il 16 marzo 2017 o dopo tale data: quando si crea un OSS cluster o un gruppo di replica Valkey o Redis utilizzando il gruppo di parametri predefinito, il parametro di gestione della memoria è. reserved-memory-percent In questo caso, il 25% del valore maxmemory del nodo è riservato per scopi non dati.

Dopo aver letto i due parametri di gestione della OSS memoria Valkey o Redis, potresti preferire utilizzare quello che non è quello predefinito o con valori non predefiniti. In questo caso, puoi passare all'altro parametro di gestione della memoria prenotata.

Per modificare il valore di tale parametro, è possibile creare un gruppo di parametri personalizzato e modificarlo in modo da utilizzare il parametro e il valore di gestione della memoria preferiti. È quindi possibile utilizzare il gruppo di parametri personalizzato ogni volta che si crea un nuovo cluster o gruppo di replica Valkey o RedisOSS. Per cluster o gruppi di replica esistenti, puoi modificarli per utilizzare il gruppo di parametri personalizzato.

Per ulteriori informazioni, consulta gli argomenti seguenti:

Il parametro reserved-memory

Prima del 16 marzo 2017, tutta la gestione della memoria riservata ElastiCache (RedisOSS) veniva eseguita utilizzando il parametro. reserved-memory Il valore di default di reserved-memory è 0. Questa impostazione predefinita non riserva memoria per il OSS sovraccarico di Valkey o Redis e consente a Valkey o Redis OSS di consumare tutta la memoria di un nodo con i dati.

La modifica di reserved-memory per disporre di memoria sufficiente per i backup e i failover, richiede la creazione di un gruppo di parametri personalizzato. In questo gruppo di parametri personalizzati, viene impostato reserved-memory un valore appropriato per la OSS versione Valkey o Redis in esecuzione sul cluster e il tipo di nodo del cluster. Per ulteriori informazioni, consulta Qual è la quantità di memoria prenotata necessaria?

Il parametro reserved-memory è specifico ElastiCache e non fa parte della distribuzione generale di RedisOSS.

La procedura seguente mostra come utilizzare per reserved-memory gestire la memoria sul cluster Valkey o RedisOSS.

Per prenotare la memoria utilizzando la memoria prenotata
  1. Creare un gruppo di parametri personalizzato specificando la famiglia di gruppi di parametri corrispondente alla versione del motore in esecuzione, ad esempio specificando la proprietàredis2.8famiglia di gruppi di parametri. Per ulteriori informazioni, consulta Creazione di un gruppo di ElastiCache parametri.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis6x-m3xl \ --description "Redis OSS 2.8.x for m3.xlarge node type" \ --cache-parameter-group-family redis6.x
  2. Calcola quanti byte di memoria riservare per il sovraccarico di Valkey o Redis. OSS Il valore di maxmemory per il tipo di nodo è disponibile in Parametri specifici del tipo di nodo Redis OSS.

  3. Modificare il gruppo di parametri personalizzato in modo che il parametro reserved-memory corrisponda al numero di byte calcolati nella fase precedente. L' AWS CLI esempio seguente presuppone che stiate utilizzando una versione di Redis OSS precedente alla 2.8.22 e che dobbiate riservare metà di quella del nodo. maxmemory Per ulteriori informazioni, consulta Modifica di un gruppo di ElastiCache parametri.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800"

    Occorre un gruppo di parametri personalizzato separato per ogni tipo di nodo in uso, perché ogni tipo di nodo dispone di un valore maxmemory diverso. Pertanto, ogni tipo di nodo richiede un valore diverso per reserved-memory.

  4. Modifica il OSS cluster o il gruppo di replica Redis per utilizzare il gruppo di parametri personalizzato.

    L'CLIesempio seguente modifica il cluster my-redis-cluster per utilizzare il gruppo di parametri personalizzato a partire da subito. redis28-m3xl Per ulteriori informazioni, consulta Modifica di un cluster ElastiCache .

    aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cluster \ --cache-parameter-group-name redis28-m3xl \ --apply-immediately

    L'CLIesempio seguente modifica il gruppo di replica my-redis-repl-grp per utilizzare il gruppo di parametri personalizzati a partire da subito. redis28-m3xl Per ulteriori informazioni, consulta Modifica di un gruppo di replica.

    aws elasticache modify-replication-group \ --replication-group-id my-redis-repl-grp \ --cache-parameter-group-name redis28-m3xl \ --apply-immediately

Il parametro reserved-memory-percent

Il 16 marzo 2017, Amazon ElastiCache ha introdotto il parametro reserved-memory-percent e lo ha reso disponibile su tutte le versioni di ElastiCache (RedisOSS). Lo scopo di reserved-memory-percent è semplificare la gestione della memoria prenotata tra tutti i cluster. A tal fine, l'utente può disporre di un singolo gruppo di parametri per ogni famiglia di gruppo di parametri (ad esempio redis2.8) per gestire la memoria prenotata dei cluster, a prescindere dal tipo di nodo. Il valore di default per reserved-memory-percent è 25 (25 percento).

Il parametro reserved-memory-percent è specifico ElastiCache e non fa parte della distribuzione generale di RedisOSS.

Se il cluster utilizza un tipo di nodo della famiglia r6gd e l'utilizzo della memoria raggiunge il 75%, il tiering di dati verrà attivato automaticamente. Per ulteriori informazioni, consulta Suddivisione dei dati su più livelli in ElastiCache.

Per riservare memoria utilizzando reserved-memory-percent

Da utilizzare reserved-memory-percent per gestire la memoria del cluster ElastiCache (RedisOSS), esegui una delle seguenti operazioni:

  • Se utilizzi Redis OSS 2.8.22 o versione successiva, assegna il gruppo di parametri predefinito al cluster. Il valore di default di 25 percento dovrebbe essere adeguato. In caso contrario, attenersi alla procedura descritta di seguito per modificare il valore.

  • Se utilizzi una versione di Redis OSS precedente alla 2.8.22, probabilmente dovrai riservare più memoria del 25% predefinito. reserved-memory-percent A tale scopo, procedi come indicato di seguito.

Per modificare il valore percentuale di reserved-memory-percent
  1. Creare un gruppo di parametri personalizzato specificando la famiglia di gruppi di parametri corrispondente alla versione del motore in esecuzione, ad esempio specificando la famiglia di gruppi di parametri redis2.8. Un gruppo di parametri di default è necessario perché non è possibile modificare un gruppo di parametri di default. Per ulteriori informazioni, consulta Creazione di un gruppo di ElastiCache parametri.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --description "Redis OSS 2.8.x 50% reserved" \ --cache-parameter-group-family redis2.8

    Poiché reserved-memory-percent consente di riservare memoria con una percentuale della maxmemory del nodo, non è necessario un gruppo di parametri personalizzato per ogni tipo di nodo.

  2. Modificare il gruppo di parametri personalizzato in modo che reserved-memory-percent sia 50 (50 percento). Per ulteriori informazioni, consulta Modifica di un gruppo di ElastiCache parametri.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50"
  3. Utilizza questo gruppo di parametri personalizzato per qualsiasi OSS cluster o gruppo di replica Redis che esegue una versione di Redis OSS precedente alla 2.8.22.

    L'CLIesempio seguente modifica il OSS cluster Redis per utilizzare il gruppo di parametri personalizzato my-redis-cluster a partire da subito. redis28-50 Per ulteriori informazioni, consulta Modifica di un cluster ElastiCache .

    aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cluster \ --cache-parameter-group-name redis28-50 \ --apply-immediately

    L'CLIesempio seguente modifica il gruppo di OSS replica Redis my-redis-repl-grp per utilizzare il gruppo di parametri personalizzato a partire da subito. redis28-50 Per ulteriori informazioni, consulta Modifica di un gruppo di replica.

    aws elasticache modify-replication-group \ --replication-group-id my-redis-repl-grp \ --cache-parameter-group-name redis28-50 \ --apply-immediately

Specifica del parametro di gestione della memoria prenotata

Se eri un ElastiCache cliente attuale il 16 marzo 2017, il tuo parametro di gestione della memoria riservata predefinito è reserved-memory pari a zero (0) byte di memoria riservata. Se sei diventato ElastiCache cliente dopo il 16 marzo 2017, il tuo parametro di gestione della memoria riservata predefinito prevede reserved-memory-percent il 25 percento della memoria riservata del nodo. Questo vale indipendentemente dal momento in cui hai creato il cluster ElastiCache (RedisOSS) o il gruppo di replica. Tuttavia, è possibile modificare il parametro di gestione della memoria riservata utilizzando o. AWS CLI ElastiCache API

I parametri reserved-memory e reserved-memory-percent sono mutuamente esclusivi. Un gruppo di parametri ne conterrà sempre uno ma non entrambi. Puoi cambiare il parametro utilizzato da un gruppo di parametri per la gestione della memoria prenotata modificando il gruppo di parametri. Il gruppo di parametri deve essere un gruppo di parametri personalizzato, perché non puoi modificare i gruppi di parametri di default. Per ulteriori informazioni, consulta Creazione di un gruppo di ElastiCache parametri.

Per specificare reserved-memory-percent

Per utilizzare reserved-memory-percent come parametro di gestione della memoria prenotata, modifica un gruppo di parametri personalizzato utilizzando il comando modify-cache-parameter-group. Utilizzo del parametro parameter-name-values per specificare reserved-memory-percent e un valore per esso.

L'CLIesempio seguente modifica il gruppo di parametri personalizzati redis32-cluster-on in modo da utilizzarlo reserved-memory-percent per gestire la memoria riservata. Affinché il gruppo di parametri utilizzi il parametro ParameterName per la gestione della memoria prenotata, occorre assegnare un valore a ParameterValue. Per ulteriori informazioni, consulta Modifica di un gruppo di ElastiCache parametri.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-cluster-on \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25"
Per specificare la memoria reserved-memory

Per utilizzare reserved-memory come parametro di gestione della memoria prenotata, modifica un gruppo di parametri personalizzato utilizzando il comando modify-cache-parameter-group. Utilizzo del parametro parameter-name-values per specificare reserved-memory e un valore per esso.

L'CLIesempio seguente modifica il gruppo di parametri personalizzati redis32-m3xl in modo che venga utilizzato reserved-memory per gestire la memoria riservata. Affinché il gruppo di parametri utilizzi il parametro ParameterName per la gestione della memoria prenotata, occorre assegnare un valore a ParameterValue. Poiché la versione del motore è più recente di 2.8.22, impostiamo il valore su 3565158400 che è 25 percento di una maxmemory di cache.m3.xlarge. Per ulteriori informazioni, consulta Modifica di un gruppo di ElastiCache parametri.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400"