memory - tutorial - redis version
Redis-monitoreo de uso de memoria (3)
En cuanto al uso de memoria, te aconsejo que consultes las preguntas frecuentes de redis.io y este artículo sobre el uso de redis como un caché de LRU .
Puede limitar el uso de memoria a través de la configuración de configuración máxima, en cuyo caso una vez que se alcanza el límite de memoria, todas las solicitudes de escritura fallarán con un error, o podría establecer la política de memoria máxima en allkeys-lru, por ejemplo, para comenzar a sobrescribir los datos menos usados recientemente en el servidor con las cosas que necesita actualmente, etc. Para la mayoría de los casos de uso, tiene suficiente flexibilidad para manejar dichos problemas a través de la configuración adecuada.
Mi consejo es mantener las cosas simples y gestionar este problema a través de la configuración del servidor redis en lugar de introducir una complejidad adicional a través de la supervisión del nivel de os o similar.
Actualmente estoy probando la inserción de claves en una base de datos Redis (en local). Tengo más de 5 millones de claves y solo tengo 4GB de RAM, así que en un momento alcanzo la capacidad de RAM y cambio de espacio (y mi PC se cae) ...
Mi problema: ¿cómo puedo hacer que el uso de la memoria de monitorización en la máquina que tiene la base de datos Redis, y de esta manera alertar no más insertar algunas claves en la base de datos Redis?
Gracias.
Hay una buena utilidad de Unix llamada vmstat. Es como la línea superior pero de comando, por lo que puede obtener el uso de memoria y estar preparado antes de detener su sistema. También puede usar ps v PID
para obtener esta información sobre el proceso específico. El PID de Redis se puede recuperar de esta manera: pidof redis-server
La memoria es un recurso crítico para el rendimiento de Redis. La memoria utilizada define la cantidad total de bytes asignados por Redis utilizando su asignador (ya sea libc estándar, jemalloc o un asignador alternativo como tcmalloc).
Puede recopilar todos los datos de métricas de utilización de memoria para una instancia de Redis ejecutando "memoria de información".
127.0.0.1:6379> info memory Memory used_memory:1007280 used_memory_human:983.67K used_memory_rss:2002944 used_memory_rss_human:1.91M used_memory_peak:1008128 used_memory_peak_human:984.50K
A veces, cuando Redis se configura sin un límite máximo de memoria, el uso de la memoria finalmente alcanzará la memoria del sistema, y el servidor comenzará a emitir errores de "Memoria insuficiente". En otros momentos, Redis está configurado con un límite máximo de memoria pero sin política de prevención. Esto haría que el servidor no desalojara ninguna clave, evitando así cualquier escritura hasta que se libere la memoria. La solución a tales problemas sería configurar Redis con memoria máxima y alguna política de desalojo. En este caso, el servidor comienza a desalojar las claves mediante la política de desalojo, ya que el uso de memoria alcanza el máximo.
La memoria RSS (tamaño del conjunto residente) es la cantidad de bytes que el sistema operativo ha asignado a Redis. Si la relación de ''memory_rss'' a ''memory_used'' es mayor que ~ 1.5, significa fragmentación de memoria. La memoria fragmentada se puede recuperar reiniciando el servidor.
Lea una descripción más detallada para monitorear el servidor Redis aquí