Administración de memoria
Directiva de expulsión
Elija una directiva de expulsión que funcione para su aplicación. La directiva predeterminada de Azure Cache for Redis es volatile-lru, lo que significa que solo las claves que tienen un valor de TTL establecido se podrán usar en la expulsión. Si ninguna de las claves tiene un valor de TTL, el sistema no expulsará ninguna clave. Si quiere que el sistema permita que se expulse cualquier clave si está bajo presión de memoria, puede usar la directiva allkeys-lru.
Expiración de claves
Establezca un valor de expiración en sus claves. Una expiración quitará las claves de forma proactiva en lugar de esperar hasta que haya presión de memoria. Cuando la expulsión ocurre debido a la presión en la memoria, puede causar más carga en el servidor. Para más información, consulte la documentación de los comandos Expire y EXPIREAT.
Minimización de la fragmentación de memoria
Los valores grandes pueden dejar la memoria fragmentada durante la expulsión y provocar un uso elevado de la memoria y la carga del servidor.
Supervisión del uso de la memoria
Agregue supervisión sobre el uso de memoria para asegurarse de que no se queda sin memoria y tiene la oportunidad de escalar la memoria caché antes de ver problemas.
Configuración de la opción maxmemory-reserved
Configure la opción maxmemory-reserved para mejorar la capacidad de respuesta del sistema en situaciones de presión de memoria.
Una configuración de reserva suficiente es especialmente importante para las cargas de trabajo con muchas operaciones de escritura o si almacena valores mayores de 100 KB en la caché. Empiece con el 10 % del tamaño de la memoria caché y aumente este porcentaje si tiene cargas con mucha actividad de escritura.
La opción
maxmemory-reservedconfigura la cantidad de memoria (en MB por instancia en un clúster) que se reserva para las operaciones ajenas a la memoria caché, como la replicación durante la conmutación por error. Esta opción le permite tener una experiencia más coherente de servidor Redis cuando varía la carga. Este valor debe establecerse más alto para las cargas de trabajo que escriben grandes cantidades de datos. Cuando se reserva memoria para dichas operaciones, no está disponible para el almacenamiento de los datos en la caché.La opción
maxfragmentationmemory-reservedconfigura la cantidad de memoria (en MB por instancia en un clúster) que se reserva para adaptarse a la fragmentación de memoria. Si se establece este valor, la experiencia del servidor Redis es más coherente cuando la caché está llena o prácticamente llena, y la proporción de fragmentación es elevada. Cuando se reserva memoria para dichas operaciones, no está disponible para el almacenamiento de los datos en la caché.Al elegir un nuevo valor de reserva de memoria (
maxmemory-reservedomaxfragmentationmemory-reserved) hay que tener en cuenta cómo podría afectar este cambio a una memoria caché que ya se está ejecutando con grandes cantidades de datos en ella. Por ejemplo, si tiene una memoria caché de 53 GB con 49 GB de datos, al cambiar el valor de reserva a 8 GB, la memoria máxima disponible para el sistema caerá a 45 GB. Si los valores actuales deused_memoryoused_memory_rssson mayores que el nuevo límite de 45 GB, entonces el sistema tendrá que expulsar datos hasta queused_memoryyused_memory_rssestén por debajo de 45 GB. La expulsión puede aumentar la carga del servidor y la fragmentación de memoria. Para más información sobre las métricas de caché comoused_memoryyused_memory_rss, consulteMétricas disponibles e intervalos de informes.