Solución de problemas del servidor de Azure Managed Redis (versión preliminar)
En esta sección se describe la solución de problemas causados por condiciones en un servidor de Azure Managed Redis (versión preliminar) o en cualquiera de las máquinas virtuales que lo hospedan.
- Uso de CPU elevado
- Uso de memoria alto
- Comandos de ejecución prolongada
- Limitación de ancho de banda del lado servidor
Nota
Algunos de los pasos de solución de problemas de esta guía incluyen instrucciones para ejecutar comandos de Redis y supervisar diversas métricas de rendimiento. Para más información e instrucciones, consulte los artículos de la sección Información adicional .
Uso de CPU elevado
Una carga elevada de CPU significa que el servidor de Redis no puede mantenerse al día con las solicitudes, lo que provoca que se agote el tiempo de espera. Para comprobar la métrica de CPU, seleccione Supervisión en el menú Recursos de la izquierda. Verá el gráfico de CPU en el panel de trabajo en Información. O bien, agregue un conjunto de métricas a CPU en Métricas.
A continuación se muestran algunas opciones que se deben tener en cuenta para una CPU elevada.
Escalado vertical o traslado a un nivel de rendimiento superior
Para obtener un mayor rendimiento, considere la posibilidad de escalar verticalmente a un tamaño de caché mayor con más núcleos de CPU. Para obtener más información, consulte Niveles de rendimiento.
Cambios rápidos en el número de conexiones de cliente
Para más información, vea Evitar picos de conexión cliente.
Comandos de larga duración o costosos
Para más información, vea Comandos de larga duración.
Ampliación
Las operaciones de escalado consumen mucha CPU y memoria, ya que podrían implicar mover datos entre los nodos y cambiar la topología del clúster. Para más información, consulte Escalado.
Mantenimiento del servidor.
Si la instancia de Azure Managed Redis ha sufrido una conmutación por error, todas las conexiones de cliente del nodo que hayan quedo fuera se transfieren al nodo que todavía está en ejecución. La carga de CPU podría aumentar debido al aumento de las conexiones. Puede intentar reiniciar las aplicaciones cliente para que todas las conexiones de cliente se vuelvan a crear y redistribuir entre los dos nodos.
Uso de memoria alto
La presión de memoria en el servidor puede provocar varios problemas de rendimiento que retrasan el procesamiento de las solicitudes. Cuando se alcanza la presión de memoria, el sistema pagina los datos en el disco, lo que hace que se ralentice considerablemente.
Hay varias causas posibles para la presión de memoria:
- La caché se rellena con los datos cerca de su capacidad máxima
- En el servidor Redis se experimenta una fragmentación de memoria alta
Es probable que la fragmentación se deba a que un patrón de carga almacena datos con una gran variación de tamaño. Por ejemplo, la fragmentación puede producirse cuando los datos se reparten entre 1 KB y 1 MB de tamaño. Cuando se elimina una clave de 1 KB de la memoria existente, una clave de 1 MB no cabe en ella, lo que provoca fragmentación. De forma similar, si se elimina la clave de 1 MB y se agrega una clave de 1,5 MB, no puede caber en la memoria reclamada existente. Esto hace que la memoria libre no se utilice y da lugar a una mayor fragmentación.
Si el valor used_memory_rss
es superior al 150 % de la métrica used_memory
, hay fragmentación en la memoria. La fragmentación puede causar problemas cuando:
- El uso de memoria está cerca del límite máximo de memoria para la memoria caché, o bien
UsedMemory_RSS
es mayor que el límite de memoria máxima, lo que puede provocar errores de página en la memoria.
Si una memoria caché se fragmenta y se ejecuta bajo una presión de memoria alta, el sistema realiza una conmutación por error para intentar recuperar la memoria de tamaño establecido de residentes (RSS).
Redis expone dos estadísticas, used_memory
y used_memory_rss
, a través del comando INFO que puede ayudarle a identificar este problema. También puede ver estas métricas mediante el portal.
Hay varios cambios posibles que puede hacer para ayudar a mantener una utilización de memoria correcta:
- Configurar una directiva de memoria y establecer tiempos de expiración de las claves. Esta directiva puede no ser suficiente si tiene fragmentación.
- Crear alertas en métricas como la memoria usada para recibir una notificación anticipada sobre los impactos potenciales.
- Escalar a un tamaño mayor de caché con más capacidad de memoria. Para más información, consulte Preguntas más frecuentes sobre planeamiento de Azure Managed Redis.
Para obtener recomendaciones sobre la administración de memoria, vea Procedimientos recomendados para la administración de memoria.
Comandos de ejecución prolongada
Para más información, vea Comandos de larga duración.
Limitación de ancho de banda del lado servidor
Para más información, vea Limitación de ancho de banda de red.