Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administración de la memoria reservada
La memoria reservada es una memoria que se aparta del uso para los datos. Cuando se realiza una copia de seguridad o una conmutación por error, Redis usa la memoria disponible para registrar las operaciones de escritura en el clúster mientras los datos del clúster se escriben en el archivo .rdb. Si no dispone de suficiente memoria disponible para todas las operaciones de escritura, se produce un error en el proceso. A continuación, encontrará información sobre las opciones para administrar la memoria reservada ElastiCache para Redis y cómo aplicarlas.
Temas
¿Cuánta memoria reservada necesita?
Debido a las diferentes formas en que se ElastiCache implementa el proceso de copia de seguridad y replicación, la regla general es reservar el 25% del maxmemory
valor de un tipo de nodo mediante el uso del reserved-memory-percent
parámetro. Este es el valor predeterminado y se recomienda en la mayoría de los casos.
Cuando los tipos de microinstancias y pequeñas con capacidad de fragmentación funcionan cerca de los maxmemory
límites, es posible que sufran un uso de intercambio. Para mejorar la confiabilidad operativa de estos tipos de instancias durante el backup, la replicación y el tráfico intenso, recomendamos aumentar el valor del reserved-memory-percent
parámetro hasta un 30% en los tipos de instancias pequeñas y hasta un 50% en los tipos de microinstancias.
Para cargas de trabajo con un uso intensivo de escritura en ElastiCache clústeres con almacenamiento en niveles de datos, recomendamos aumentar la memoria disponible del nodo reserved-memory-percent
hasta un 50%.
Para más información, consulte los siguientes temas:
Parámetros de administración de la memoria reservada
A partir del 16 de marzo de 2017, Amazon ElastiCache for Redis proporciona dos parámetros que se excluyen mutuamente para administrar la memoria de Redis, yreserved-memory
. reserved-memory-percent
Ninguno de estos parámetros forma parte de la distribución de Redis.
Según el momento en que se haya convertido en ElastiCache cliente, uno u otro de estos parámetros es el parámetro de administración de memoria predeterminado. Este parámetro se aplica cuando crea un nuevo clúster o grupo de reproducción de Redis y utiliza un grupo de parámetros predeterminado.
-
Para clientes que comenzaron antes del 16 de marzo de 2017: cuando cree un clúster o grupo de reproducción de Redis mediante el grupo de parámetros predeterminado, el parámetro de administración de memoria es
reserved-memory
. En este caso, cero (0) bytes de memoria se encuentran reservados. -
Para clientes que comenzaron el 16 de marzo de 2017 o después de esa fecha: cuando cree un clúster o grupo de reproducción de Redis mediante el grupo de parámetros predeterminado, el parámetro de administración de memoria es
reserved-memory-percent
. En este caso, el 25 % del valormaxmemory
del nodo se encuentra reservado para fines no relacionados con datos.
Después de leer sobre los dos parámetros de administración de la memoria de Redis, puede que prefiera utilizar el que no es el predeterminado o uno con valores no predeterminados. En este caso, puede cambiar al otro parámetro de administración de la memoria reservada.
Para cambiar el valor de ese parámetro, puede crear un grupo de parámetros personalizado y modificarlo a fin de utilizar el parámetro y el valor de administración de la memoria preferidos. A continuación, podrá usar el grupo de parámetros personalizado cada vez que cree un nuevo clúster o grupo de reproducción de Redis. Para los clústeres o grupos de reproducción existentes, puede modificarlos para que usen su grupo de parámetros personalizado.
Para más información, consulte los siguientes temas:
Parámetro reserved-memory
Antes del 16 de marzo de 2017, toda la gestión ElastiCache de la memoria reservada de Redis se realizaba mediante este parámetroreserved-memory
. El valor predeterminado de reserved-memory
es 0. Este valor predeterminado no reserva memoria alguna como capacidad adicional para Redis y permite que Redis ocupe toda la memoria de un nodo con datos.
La modificación del parámetro reserved-memory
para tener suficiente memoria disponible para las copias de seguridad y las conmutaciones por error requiere crear un grupo de parámetros personalizado. En este grupo de parámetros personalizado, el parámetro reserved-memory
se establece en un valor adecuado a la versión de Redis que ejecuta en su clúster y al tipo de nodo del clúster. Para obtener más información, consulte ¿Cuánta memoria reservada necesita?
El parámetro ElastiCache for Redis reserved-memory
es específico de Redis y no forma parte de la distribución de Redis. ElastiCache
El procedimiento siguiente muestra cómo usar reserved-memory
para administrar la memoria en su clúster de Redis.
Para reservar memoria mediante reserved-memory
-
Cree un grupo de parámetros personalizado especificando la familia del grupo de parámetros que coincide con la versión del motor que está ejecutando, como, por ejemplo, la familia del grupo de parámetros
redis2.8
. Para obtener más información, consulte Creación de un grupo de parámetros.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
-
Calcule el número de bytes de memoria a fin de reservar como capacidad adicional para Redis. Encontrará el valor de
maxmemory
para su tipo de nodo en Parámetros específicos de tipos de nodo de Redis. -
Modifique el grupo de parámetros personalizado de modo que el parámetro
reserved-memory
coincida con el número de bytes que calculó en el paso anterior. En el siguiente AWS CLI ejemplo, se supone que está ejecutando una versión de Redis anterior a la 2.8.22 y que necesita reservar la mitad de los nodos.maxmemory
Para obtener más información, consulte Modificación de un grupo de parámetros.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800
"Necesita un grupo de parámetros personalizado individual para cada tipo de nodo que utilice, ya que cada tipo de nodo tiene un valor de
maxmemory
distinto. Por lo tanto, cada tipo de nodo necesita un valor diferente parareserved-memory
. -
Modifique el clúster o grupo de reproducción de Redis de forma que use su grupo de parámetros personalizado.
En el ejemplo de la CLI siguiente se modifica el clúster
my-redis-cluster
de forma que comience a usar de inmediato el grupo de parámetros personalizadoredis28-m3xl
. Para obtener más información, consulte Modificación de un ElastiCache clúster.aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediatelyEn el ejemplo de la CLI siguiente se modifica el grupo de reproducción
my-redis-repl-grp
de forma que comience a usar de inmediato el grupo de parámetros personalizadoredis28-m3xl
. Para obtener más información, Modificación de un grupo de reproducción.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately
El reserved-memory-percent parámetro
El 16 de marzo de 2017, Amazon ElastiCache introdujo el parámetro reserved-memory-percent
y lo puso a disposición en todas las versiones ElastiCache de Redis. El propósito del parámetro reserved-memory-percent
es simplificar la administración de la memoria reservada en todos los clústeres. Esta simplificación se consigue al disponer de un único grupo de parámetros para cada familia de grupos de parámetros (como redis2.8
) para administrar la memoria reservada de sus clústeres, sea cual sea el tipo de nodo. El valor de predeterminado para reserved-memory-percent
es 25 (25 por ciento).
El parámetro ElastiCache for Redis reserved-memory-percent
es específico de Redis y no forma parte de la distribución de Redis. ElastiCache
Si el clúster utiliza un tipo de nodo de la familia r6gd y el uso de memoria alcanza el 75 por ciento, la organización de datos en niveles se activará automáticamente. Para obtener más información, consulte Organización de datos en niveles.
Para reservar memoria mediante reserved-memory-percent
reserved-memory-percent
Para administrar la memoria del clúster ElastiCache de Redis, realice una de las siguientes acciones:
-
Si ejecuta Redis 2.8.22 o posterior, asigne el grupo de parámetros predeterminado a su clúster. El valor predeterminado de 25 debe ser suficiente. De lo contrario, siga los pasos que se describen a continuación para cambiar el valor.
-
Si ejecuta una versión de Redis anterior a la 2.8.22, probablemente tendrá que reservar más memoria que el 25 % predeterminado de
reserved-memory-percent
. Para ello, siga el procedimiento que se indica a continuación.
Para cambiar el valor porcentual de reserved-memory-percent
-
Cree un grupo de parámetros personalizado especificando la familia del grupo de parámetros que coincide con la versión del motor que está ejecutando, como, por ejemplo, la familia del grupo de parámetros
redis2.8
. Necesita disponer de un grupo de parámetros personalizado porque no es posible modificar grupos de parámetros predeterminados. Para obtener más información, consulte Creación de un grupo de parámetros.aws elasticache create-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --description "Redis 2.8.x 50% reserved
" \ --cache-parameter-group-familyredis2.8
Dado que
reserved-memory-percent
se reserva la memoria como un porcentaje del valormaxmemory
de un nodo, no necesita un grupo de parámetros personalizado para cada tipo de nodo. -
Modifique el grupo de parámetros personalizados de modo que el parámetro
reserved-memory-percent
tenga el valor 50 (50 %). Para obtener más información, consulte Modificación de un grupo de parámetros.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50
" -
Use este grupo de parámetros personalizado para todos los clústeres o grupos de reproducción de Redis que ejecuten una versión de Redis anterior a la 2.8.22.
En el ejemplo de la CLI siguiente se modifica el clúster de Redis
my-redis-cluster
de forma que comience a usar de inmediato el grupo de parámetros personalizadoredis28-50
. Para obtener más información, consulte Modificación de un ElastiCache clúster.aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-50
\ --apply-immediatelyEn el ejemplo de la CLI siguiente se modifica el grupo de reproducción de Redis
my-redis-repl-grp
de forma que comience a usar de inmediato el grupo de parámetros personalizadoredis28-50
. Para obtener más información, consulte Modificación de un grupo de reproducción.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately
Especificación del parámetro de administración de memoria reservada
Si era ElastiCache cliente actual el 16 de marzo de 2017, su parámetro de administración de memoria reservada predeterminado es reserved-memory
cero (0) bytes de memoria reservada. Si se convirtió en ElastiCache cliente después del 16 de marzo de 2017, su parámetro de administración de memoria reservada predeterminado es reserved-memory-percent
tener el 25 por ciento de la memoria del nodo reservada. Esto es válido independientemente de cuándo creó su clúster o grupo de replicación ElastiCache para Redis. Sin embargo, puede cambiar el parámetro de administración de memoria reservada mediante la ElastiCache API AWS CLI o.
Los parámetros reserved-memory
y reserved-memory-percent
son mutuamente excluyentes. Un grupo de parámetros siempre tiene un parámetro, pero nunca ambos. Puede cambiar el parámetro que usa el grupo de parámetros para la administración de memoria reservada modificando el grupo de parámetros. El grupo de parámetros debe ser personalizado, ya que no es posible modificar grupos de parámetros predeterminados. Para obtener más información, consulte Creación de un grupo de parámetros.
Para especificar reserved-memory-percent
Para utilizar reserved-memory-percent
como parámetro de administración de memoria reservada, modifique un grupo de parámetros personalizado mediante el comando modify-cache-parameter-group
. Utilice el parámetro parameter-name-values
para especificar reserved-memory-percent
y un valor para ello.
El siguiente ejemplo de la CLI modifica el grupo de parámetros personalizados redis32-cluster-on
para usar el parámetro reserved-memory-percent
para administrar la memoria reservada. Se debe asignar un valor a ParameterValue
para que el grupo de parámetros utilice el parámetro ParameterName
a fin de administrar la memoria reservada. Para obtener más información, consulte Modificación de un grupo de parámetros.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-cluster-on
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25
"
Para especificar reserved-memory
Para utilizar reserved-memory
como parámetro de administración de memoria reservada, modifique un grupo de parámetros personalizado mediante el comando modify-cache-parameter-group
. Utilice el parámetro parameter-name-values
para especificar reserved-memory
y un valor para ello.
El siguiente ejemplo de la CLI modifica el grupo de parámetros personalizados redis32-m3xl
para usar el parámetro reserved-memory
para administrar la memoria reservada. Se debe asignar un valor a ParameterValue
para que el grupo de parámetros utilice el parámetro ParameterName
a fin de administrar la memoria reservada. Dado que la versión del motor es posterior a la versión 2.8.22, establecemos el valor en 3565158400
, que es el 25 % del valor de maxmemory
de cache.m3.xlarge
. Para obtener más información, consulte Modificación de un grupo de parámetros.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400
"