Gestion de la mémoire réservée - Amazon ElastiCache (Redis OSS)

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 OSS utilise la mémoire disponible pour enregistrer les opérations d'écriture sur votre cluster pendant 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 pour ElastiCache (Redis OSS) et sur la façon d'appliquer ces options.

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

Si vous utilisez une version de Redis OSS antérieure à la version 2.8.22, réservez plus de mémoire pour les sauvegardes et les basculements que si vous exécutez Redis OSS 2.8.22 ou version ultérieure. Cette exigence est due aux différentes manières dont ElastiCache (Redis OSS) implémente le processus de sauvegarde. La règle générale est de réserver la moitié de la maxmemory valeur d'un type de nœud pour la surcharge de Redis OSS pour les versions antérieures à 2.8.22, et un quart pour les versions 2.8.22 et ultérieures de Redis OSS.

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 (Redis OSS) fournit deux paramètres mutuellement exclusifs pour gérer votre mémoire Redis OSS, etreserved-memory. reserved-memory-percent Aucun de ces paramètres ne fait partie de la distribution Redis OSS.

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 nouveau cluster Redis OSS ou un nouveau groupe de réplication et que vous utilisez un groupe de paramètres par défaut.

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

  • Pour les clients qui ont commencé le 16 mars 2017 ou après cette date : lorsque vous créez un cluster Redis OSS ou un groupe de réplication à l'aide du groupe de paramètres par défaut, votre paramètre de gestion de la mémoire estreserved-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 pris connaissance des deux paramètres de gestion de la mémoire de Redis OSS, vous préférerez peut-être utiliser celui qui n'est pas votre paramètre par défaut ou avec des valeurs autres que celles 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é chaque fois que vous créez un nouveau cluster Redis OSS ou un nouveau groupe de réplication. 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 la mémoire réservée ElastiCache (Redis OSS) était effectuée à l'aide de ce 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 de Redis OSS et permet à Redis OSS de consommer toute la mémoire d'un nœud en 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és, vous définissez une valeur adaptée reserved-memory à la version de Redis OSS exécutée sur votre cluster et au type de nœud du cluster. Pour plus d’informations, consultez De quelle quantité de mémoire réservée avez-vous besoin ?.

Le paramètre reserved-memory est spécifique à ElastiCache (Redis OSS) et ne fait pas partie de la distribution générale de Redis OSS.

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

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 OSS 2.8.x for m3.xlarge node type" \ --cache-parameter-group-family redis6.x
  2. Calculez le nombre d'octets de mémoire à réserver pour la surcharge de Redis OSS. Vous pouvez trouver la valeur de maxmemory du type de nœud dans Paramètres spécifiques au type de nœud Redis OSS.

  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 exécutez une version de Redis OSS 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 Redis OSS ou votre groupe de réplication pour 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 (Redis OSS). 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 reserved-memory-percent est spécifique à ElastiCache (Redis OSS) et ne fait pas partie de la distribution générale de Redis OSS.

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 cluster ElastiCache (Redis OSS), effectuez l'une des opérations suivantes :

  • Si vous utilisez Redis OSS 2.8.22 ou version ultérieure, attribuez 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 utilisez une version de Redis OSS antérieure à la version 2.8.22, vous devrez probablement réserver plus de mémoire que la valeur par défaut reserved-memory-percent de 25 %. 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 OSS 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 OSS exécutant une version de Redis OSS antérieure à 2.8.22.

    L'exemple de CLI suivant modifie le cluster Redis OSS my-redis-cluster pour utiliser le groupe de paramètres personnalisés redis28-50 commençant 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 CLI suivant modifie le groupe de réplication Redis OSS my-redis-repl-grp pour utiliser le groupe de paramètres personnalisés redis28-50 commençant 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 déjà ElastiCache client 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 ElastiCache (Redis OSS) ou votre groupe de réplication. 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"