Gestion de la mémoire réservée - Amazon ElastiCache pour Redis

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion de la mémoire réservée

La mémoire réservée est mise de côté pour être utilisée à des fins autres que le traitement des données. Lorsque vous effectuez une sauvegarde ou un basculement, Redis utilise la mémoire disponible pour enregistrer les opérations d'écriture sur votre cluster, tandis que les données du cluster sont écrites dans le fichier .rdb. Si vous ne disposez pas de suffisamment de mémoire pour toutes les écritures, le processus échouera. Vous trouverez ci-dessous des informations sur les options de gestion de la mémoire réservée ElastiCache pour Redis et sur la manière d'appliquer ces options.

De quelle quantité de mémoire réservée avez-vous besoin ?

En raison des différentes manières de ElastiCache mettre en œuvre le processus de sauvegarde et de réplication, la règle générale consiste à réserver 25 % de la maxmemory valeur d'un type de nœud en utilisant le reserved-memory-percent paramètre. Il s'agit de la valeur par défaut recommandée dans la plupart des cas.

Lorsque les microinstances et les petites instances burstables fonctionnent à un niveau proche de leurs maxmemory limites, il est possible qu'ils soient soumis à une utilisation du swap. Pour améliorer la fiabilité opérationnelle de ces types d'instances lors de la sauvegarde, de la réplication et d'un trafic élevé, nous recommandons d'augmenter la valeur du reserved-memory-percent paramètre jusqu'à 30 % pour les types d'instances de petite taille et jusqu'à 50 % pour les types de micro-instances.

Pour les charges de travail intensives en écriture sur des ElastiCache clusters avec hiérarchisation des données, nous recommandons d'augmenter jusqu'reserved-memory-percentà 50 % de la mémoire disponible du nœud.

Pour plus d’informations, consultez les ressources suivantes :

Paramètres de gestion de la mémoire réservée

Depuis le 16 mars 2017, Amazon ElastiCache pour Redis fournit deux paramètres mutuellement exclusifs pour gérer votre mémoire Redis, etreserved-memory. reserved-memory-percent Aucun de ces paramètres ne fait partie de la distribution Redis.

Selon le moment où vous êtes devenu ElastiCache client, l'un ou l'autre de ces paramètres est le paramètre de gestion de mémoire par défaut. Ce paramètre s'applique lorsque vous créez un cluster ou groupe de réplication Redis et que vous utilisez un groupe de paramètres par défaut.

  • Pour les clients ayant commencé avant le 16 mars 2017 : lorsque vous créez un cluster ou un groupe de réplication Redis à l'aide du groupe de paramètres par défaut, votre paramètre de gestion de la mémoire est reserved-memory. Dans ce cas, zéro (0) octets de mémoire sont réservés.

  • Pour les clients ayant commencé le 16 mars 2017 ou après : lorsque vous créez un cluster ou un groupe de réplication Redis à l'aide du groupe de paramètres par défaut, votre paramètre de gestion de la mémoire est reserved-memory-percent. Dans ce cas, 25 % de la valeur maxmemory de votre nœud est réservée à des fins non liées aux données.

Après avoir lu les deux paramètres de gestion de la mémoire Redis, vous préférerez peut-être utiliser celui qui n'est pas votre valeur par défaut ou avec des valeurs autres que par défaut. Dans ce cas, vous pouvez passer à l'autre paramètre de gestion de la mémoire réservée.

Pour modifier la valeur de ce paramètre, vous pouvez créer un groupe de paramètres personnalisé et le modifier pour utiliser le paramètre et la valeur de gestion de la mémoire préférés. Vous pouvez ensuite utiliser le groupe de paramètres personnalisés chaque fois que vous créez un nouveau cluster ou groupe de réplication Redis. Pour les clusters ou les groupes de réplication existants, vous pouvez les modifier afin d'utiliser votre groupe de paramètres personnalisés.

Pour plus d'informations, veuillez consulter les ressources suivantes :

Paramètre reserved-memory

Avant le 16 mars 2017, toute la gestion de ElastiCache la mémoire réservée à Redis était effectuée à l'aide du paramètrereserved-memory. La valeur par défaut de reserved-memory est 0. Cette valeur par défaut ne réserve aucune mémoire pour la surcharge Redis et permet à Redis de consommer toute la mémoire du nœud avec des données.

Pour pouvoir modifier reserved-memory afin de disposer d'une quantité de mémoire suffisante pour les sauvegardes et les basculements, vous devez créer un groupe de paramètres personnalisé. Dans ce groupe de paramètres personnalisé, vous affectez à reserved-memory une valeur appropriée pour la version de Redis exécutée sur votre cluster et pour le type de nœud du cluster. Pour plus d'informations, veuillez consulter De quelle quantité de mémoire réservée avez-vous besoin ?

Le paramètre ElastiCache for Redis reserved-memory est spécifique à ElastiCache for Redis et ne fait pas partie de la distribution Redis.

La procédure suivante montre comment utiliser reserved-memory afin de gérer la mémoire sur votre cluster Redis.

Pour réserver de la mémoire à l'aide de la mémoire réservée
  1. Créez un groupe de paramètres personnalisé spécifiant la famille de groupe de paramètres correspondant à la version de moteur exécutée par exemple, la famille de groupe de paramètres redis2.8. Pour plus d’informations, consultez Création d'un groupe de paramètres.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis6x-m3xl \ --description "Redis 2.8.x for m3.xlarge node type" \ --cache-parameter-group-family redis6.x
  2. Calculez le nombre d'octets de mémoire dont vous avez besoin pour réserver la surcharge de Redis. Vous pouvez trouver la valeur de maxmemory du type de nœud dans Paramètres propres au type de nœud Redis.

  3. Modifiez le groupe de paramètres personnalisé de façon à ce que le paramètre reserved-memory corresponde au nombre d'octets calculé au cours de la première étape. L' AWS CLI exemple suivant suppose que vous utilisez une version de Redis antérieure à la version 2.8.22 et que vous devez réserver la moitié de celle du nœud. maxmemory Pour plus d’informations, consultez Modification d'un groupe de paramètres.

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

    Notez que vous avez besoin d'un groupe de paramètres personnalisé distinct pour chaque nœud utilisé dans la mesure où chaque type de nœud a une valeur maxmemory différente. Par conséquent, chaque type de nœud a besoin d'une valeur différente pour reserved-memory.

  4. Modifiez votre cluster ou groupe de réplication Redis afin d'utiliser votre groupe de paramètres personnalisé.

    L'exemple de la CLI suivant modifie le cluster my-redis-cluster afin qu'il utilise le groupe de paramètres personnalisé redis28-m3xl immédiatement. Pour plus d’informations, consultez Modifier un ElastiCache cluster.

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

    L'exemple de la CLI suivant modifie le groupe de réplication my-redis-repl-grp afin qu'il utilise le groupe de paramètres personnalisé redis28-m3xl immédiatement. Pour plus d’informations, consultez Modification d'un groupe de réplication.

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

Le reserved-memory-percent paramètre

Le 16 mars 2017, Amazon ElastiCache a introduit le paramètre reserved-memory-percent et l'a rendu disponible sur toutes les versions de ElastiCache for Redis. L'objectif de reserved-memory-percent est de simplifier la gestion de la mémoire réservée sur tous vos clusters. Vous avez ainsi la possibilité d'avoir un seul groupe de paramètres pour chaque famille de groupe de paramètres (par exemple, redis2.8) afin de gérer la mémoire réservée de votre cluster, quel que soit le type de nœud. La valeur par défaut de reserved-memory-percent est 25 (25 %).

Le paramètre ElastiCache for Redis reserved-memory-percent est spécifique à ElastiCache for Redis et ne fait pas partie de la distribution Redis.

Si votre cluster utilise un type de nœud de la famille r6gd et que votre utilisation de la mémoire atteint 75 %, la hiérarchisation des données sera automatiquement déclenchée. Pour plus d’informations, consultez Mise à niveau des données.

Pour réserver de la mémoire en utilisant reserved-memory-percent

reserved-memory-percentPour gérer la mémoire de votre ElastiCache cluster Redis, effectuez l'une des opérations suivantes :

  • Si vous exécutez Redis 2.8.22 ou une version ultérieure, il vous suffit d'attribuer le groupe de paramètres par défaut à votre cluster. Les 25 % par défaut devraient convenir. Si tel n'est pas le cas, procédez comme suit pour modifier la valeur.

  • Si vous exécutez une version de Redis antérieure à 2.8.22, vous aurez probablement besoin de réserver davantage de mémoire que les 25 % par défaut du paramètre reserved-memory-percent. Pour cela, procédez comme suit.

Pour modifier la valeur en pourcentage de reserved-memory-percent
  1. Créez un groupe de paramètres personnalisé spécifiant la famille de groupe de paramètres correspondant à la version de moteur exécutée par exemple, la famille de groupe de paramètres redis2.8. Un groupe de paramètres personnalisé est nécessaire car vous ne pouvez pas modifier un groupe de paramètres par défaut. Pour plus d’informations, consultez Création d'un groupe de paramètres.

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

    Dans la mesure où reserved-memory-percent réserve de la mémoire sous forme de pourcentage du paramètre maxmemory d'un nœud, vous n'avez pas besoin d'un groupe de paramètres personnalisé pour chaque type de nœud.

  2. Modifiez le groupe de paramètres personnalisé afin que le paramètre reserved-memory-percent soit défini sur 50 (50 %). Pour plus d’informations, consultez Modification d'un groupe de paramètres.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50"
  3. Utilisez ce groupe de paramètres personnalisé pour tous les clusters ou groupes de réplication Redis qui exécutent une version de Redis antérieure à 2.8.22.

    L'exemple de la CLI suivant modifie le cluster Redis my-redis-cluster afin qu'il utilise le groupe de paramètres personnalisé redis28-50 immédiatement. Pour plus d’informations, consultez Modifier un ElastiCache cluster.

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

    L'exemple de la CLI suivant modifie le groupe de réplication Redis my-redis-repl-grp afin qu'il utilise le groupe de paramètres personnalisé redis28-50 immédiatement. Pour plus d’informations, consultez Modification d'un groupe de réplication.

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

Spécification de votre paramètre de gestion de la mémoire réservée

Si vous étiez un ElastiCache client actuel le 16 mars 2017, votre paramètre de gestion de mémoire réservée par défaut est reserved-memory de zéro (0) octet de mémoire réservée. Si vous êtes devenu ElastiCache client après le 16 mars 2017, votre paramètre de gestion de la mémoire réservée par défaut est reserved-memory-percent de réserver 25 % de la mémoire du nœud. Cela est vrai quelle que soit la date à laquelle vous avez créé votre cluster ou groupe de réplication ElastiCache pour Redis. Toutefois, vous pouvez modifier le paramètre de gestion de la mémoire réservée à l'aide de l' ElastiCache API AWS CLI or.

Les paramètres reserved-memory et reserved-memory-percent sont mutuellement exclusifs. Un groupe de paramètres est toujours associé à un paramètre, mais jamais aux deux. Vous pouvez modifier le paramètre utilisé par un groupe de paramètres pour la gestion de la mémoire réservée en modifiant le groupe de paramètres. Le groupe de paramètres doit être un groupe de paramètres personnalisé, car vous ne pouvez pas modifier les groupes de paramètres par défaut. Pour plus d’informations, consultez Création d'un groupe de paramètres.

Pour spécifier reserved-memory-percent

Pour utiliser reserved-memory-percent comme paramètre de gestion de la mémoire réservée, modifiez un groupe de paramètres personnalisés à l'aide de la commande modify-cache-parameter-group. Utilisez le paramètre parameter-name-values pour spécifier reserved-memory-percent et une valeur pour cela.

L'exemple de la CLI suivant modifie le groupe de paramètres personnalisé redis32-cluster-on afin qu'il utilise reserved-memory-percent pour gérer la mémoire réservée. Une valeur doit être affectée à ParameterValue pour que le groupe de paramètres utilise le paramètre ParameterName pour la gestion de la mémoire réservée. Pour plus d’informations, consultez Modification d'un groupe de paramètres.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-cluster-on \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25"
Pour spécifier reserved-memory

Pour utiliser reserved-memory comme paramètre de gestion de la mémoire réservée, modifiez un groupe de paramètres personnalisés à l'aide de la commande modify-cache-parameter-group. Utilisez le paramètre parameter-name-values pour spécifier reserved-memory et une valeur pour cela.

L'exemple de la CLI suivant modifie le groupe de paramètres personnalisé redis32-m3xl afin qu'il utilise reserved-memory pour gérer la mémoire réservée. Une valeur doit être affectée à ParameterValue pour que le groupe de paramètres utilise le paramètre ParameterName pour la gestion de la mémoire réservée. Comme la version du moteur est plus récente que la version 2.8.22, nous définissons la valeur sur 3565158400, soit 25 % de maxmemory du cache.m3.xlarge. Pour plus d'informations, voir Modification d'un groupe de paramètres.

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