Gestión de la memoria reservada para Valkey y Redis OSS - Amazon ElastiCache

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.

Gestión de la memoria reservada para Valkey y Redis OSS

La memoria reservada es una memoria que se aparta del uso para los datos. Al realizar una copia de seguridad o una conmutación por error, Valkey y Redis OSS utilizan la memoria disponible para grabar las operaciones de escritura en el clúster mientras se escriben los datos del clúster 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 para ElastiCache (RedisOSS) y cómo aplicarlas.

¿Cuánta memoria reservada necesita?

Si utiliza una versión de Redis OSS anterior a la 2.8.22, reserve más memoria para las copias de seguridad y las conmutaciones por error que si utiliza Redis 2.8.22 o posterior. OSS Este requisito se debe a las diferentes formas en que ElastiCache (Redis) implementa el proceso de copia de seguridad. OSS La regla general es reservar la mitad del maxmemory valor de un tipo de nodo para la OSS sobrecarga de Redis en las versiones anteriores a la 2.8.22 y una cuarta parte para las versiones 2.8.22 y posteriores de OSS Redis.

Debido a las diferentes formas de ElastiCache implementar el proceso de copia de seguridad y replicación, la regla general es reservar el 25% del valor de un tipo de nodo mediante el uso del parámetro. maxmemory reserved-memory-percent 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 respaldo, 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 proporciona dos parámetros que se excluyen mutuamente para administrar la OSS memoria Valkey o Redis, yreserved-memory. reserved-memory-percent Ninguno de estos parámetros forma parte de la distribución de Valkey o Redis. OSS

Dependiendo de cuándo se convirtió 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 se crea un nuevo OSS clúster o grupo de replicación de Valkey o Redis y se utiliza un grupo de parámetros predeterminado.

  • Para los clientes que comenzaron antes del 16 de marzo de 2017: cuando crea un OSS clúster o grupo de replicación de Redis con el grupo de parámetros predeterminado, su parámetro de administración de memoria es. reserved-memory En este caso, cero (0) bytes de memoria se encuentran reservados.

  • Para los clientes que comenzaron el 16 de marzo de 2017 o después de esa fecha: cuando crea un OSS clúster o grupo de replicación de Valkey o Redis con el grupo de parámetros predeterminado, su parámetro de administración de memoria es. reserved-memory-percent En este caso, el 25 % del valor maxmemory del nodo se encuentra reservado para fines no relacionados con datos.

Tras leer acerca de los dos parámetros de administración de OSS memoria de Valkey o Redis, puede que prefiera utilizar el que no sea el predeterminado o que tenga 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, puede usar el grupo de parámetros personalizado siempre que cree un nuevo clúster o grupo de replicación de Valkey o RedisOSS. 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 administración de la memoria reservada ElastiCache (RedisOSS) se realizaba mediante el parámetro. reserved-memory El valor predeterminado de reserved-memory es 0. De forma predeterminada, no se reserva memoria para la OSS sobrecarga de Valkey o Redis y permite que Valkey o Redis consuman toda OSS 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 personalizados, se establece un valor adecuado reserved-memory para la OSS versión de Valkey o Redis que se ejecuta en el clúster y el tipo de nodo del clúster. Para obtener más información, consulte ¿Cuánta memoria reservada necesita?

El parámetro reserved-memory es específico de la distribución general de OSS Redis ElastiCache y no forma parte de ella.

El siguiente procedimiento muestra cómo reserved-memory administrar la memoria del clúster de Valkey o OSS Redis.

Para reservar memoria mediante reserved-memory
  1. 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 ElastiCache de parámetros.

    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. Calcule cuántos bytes de memoria debe reservar para la sobrecarga de Valkey o Redis. OSS Encontrará el valor de maxmemory para su tipo de nodo en Parámetros específicos del tipo de nodo de Redis OSS.

  3. 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 OSS anterior a la 2.8.22 y que necesita reservar la mitad de la del nodo. maxmemory Para obtener más información, consulte Modificación de un grupo de ElastiCache 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 para reserved-memory.

  4. Modifique su OSS clúster o grupo de replicación de Redis para usar su grupo de parámetros personalizado.

    En el siguiente CLI ejemplo, se modifica el clúster my-redis-cluster para utilizar el grupo de parámetros personalizado de forma inmediataredis28-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-name redis28-m3xl \ --apply-immediately

    En el siguiente CLI ejemplo, se modifica el grupo de replicación my-redis-repl-grp para utilizar el grupo de parámetros personalizado a redis28-m3xl partir de ahora. 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-name redis28-m3xl \ --apply-immediately

El parámetro reserved-memory-percent

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 de ElastiCache (RedisOSS). 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 reserved-memory-percent es específico de la distribución general de Redis ElastiCache OSS y no forma parte de ella.

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 por niveles en ElastiCache.

Para reservar memoria mediante reserved-memory-percent

reserved-memory-percentPara administrar la memoria de su clúster ElastiCache (RedisOSS), realice una de las siguientes acciones:

  • Si ejecuta Redis OSS 2.8.22 o una versión 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 OSS anterior a la 2.8.22, probablemente necesite reservar más memoria de la predeterminada, un 25 por ciento. reserved-memory-percent Para ello, siga el procedimiento que se indica a continuación.

Para cambiar el valor porcentual de reserved-memory-percent
  1. 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 ElastiCache de parámetros.

    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

    Dado que reserved-memory-percent se reserva la memoria como un porcentaje del valor maxmemory de un nodo, no necesita un grupo de parámetros personalizado para cada tipo de nodo.

  2. 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 ElastiCache parámetros.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50"
  3. Utilice este grupo de parámetros personalizado para cualquier OSS clúster o grupo de replicación de Redis que ejecute una versión de Redis OSS anterior a la 2.8.22.

    En el siguiente CLI ejemplo, se modifica el OSS clúster de Redis my-redis-cluster para que utilice el grupo de parámetros personalizado de forma inmediata. redis28-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-name redis28-50 \ --apply-immediately

    En el siguiente CLI ejemplo, se modifica el grupo de OSS replicación de Redis my-redis-repl-grp para que utilice el grupo de parámetros personalizado de forma inmediata. redis28-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-name redis28-50 \ --apply-immediately

Especificación del parámetro de administración de memoria reservada

Si era un ElastiCache cliente actual el 16 de marzo de 2017, su parámetro de administración de memoria reservada predeterminado es reserved-memory con 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 cierto independientemente de cuándo creó su clúster ElastiCache (RedisOSS) o grupo de replicación. Sin embargo, puede cambiar el parámetro de administración de la memoria reservada mediante la tecla AWS CLI o ElastiCache API.

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 ElastiCache 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 CLI ejemplo modifica el grupo de parámetros personalizados redis32-cluster-on para que se utilice 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 ElastiCache 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.

En el siguiente CLI ejemplo, se modifica el grupo de parámetros personalizados redis32-m3xl para que se utilice 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 ElastiCache parámetros.

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