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.
Rubriques
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 valeurmaxmemory
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
-
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-familyredis6.x
-
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. -
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 pourreserved-memory
. -
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-nameredis28-m3xl
\ --apply-immediatelyL'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-nameredis28-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-percent
Pour 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
-
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-familyredis2.8
Dans la mesure où
reserved-memory-percent
réserve de la mémoire sous forme de pourcentage du paramètremaxmemory
d'un nœud, vous n'avez pas besoin d'un groupe de paramètres personnalisé pour chaque type de nœud. -
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
" -
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-nameredis28-50
\ --apply-immediatelyL'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-nameredis28-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
"