¿Por qué el uso de CPU de una instancia de DCS Redis es 100%?
Síntomas
El uso de CPU de una instancia de Redis aumenta drásticamente en un corto período de tiempo. Si el uso de la CPU es demasiado alto, las conexiones pueden agotarse y se puede activar la conmutación principal/en espera.
Causas posibles
- El servicio QPS es alto. En este caso, consulte Comprobación de QPS.
- Se utilizaron los comandos que consumen recursos, como KEYS. En este caso, consulte Localización y deshabilitación de comandos intensivos en la CPU.
- Se activó la reescritura de Redis. En este caso, consulte Comprobación de reescritura de Redis.
Comprobación de QPS
En la página Cache Manager de la consola de DCS, haga clic en una instancia para ir a la página de detalles de la instancia. En el menú de la izquierda, elija Performance Monitoring y, a continuación, vea la métrica Ops per Second.
Localización y deshabilitación de comandos intensivos en la CPU
Se utilizan comandos que consumen recursos (comandos con complejidad de tiempo O(N) o superior), como KEYS. Generalmente, cuanto mayor es la complejidad temporal, más recursos utiliza un comando. Como resultado, el uso de la CPU es alto, y se puede activar fácilmente una conmutación principal/en espera. Para obtener más información sobre la complejidad temporal de cada comando, visite el sitio web oficial de Redis. En este caso, utilice el comando SCAN en su lugar o desactive el comando KEYS.
- En la página Performance Monitoring de la consola de DCS, localice el período en el que el uso de la CPU es alto.
- Utilice los métodos siguientes para encontrar los comandos que consumen un gran número de recursos.
- Redis registra las consultas que exceden una duración de ejecución especificada. Puede encontrar los comandos que consumen un gran número de recursos analizando las consultas lentas y su duración de ejecución. Para obtener más información, consulte la sección Vista de consultas lentas de Redis.
- Utilice la función de diagnóstico de instancia para analizar el porcentaje de duración de ejecución de diferentes comandos durante el período en que el uso de CPU es alto. Para obtener más información, consulte Diagnóstico de una instancia.
- Resuelva el problema.
- Evalúe y deshabilite los comandos de alto riesgo y alto consumo, como FLUSHALL, KEYS y HGETALL.
- Optimice los servicios. Por ejemplo, evite las operaciones frecuentes de clasificación de datos.
- (Opcional) Realice las siguientes operaciones para ajustar las instancias en función de los requisitos de servicio:
- Cambie el tipo de instancia a separación de lectura/escritura para separar las solicitudes de lectura y escritura de los comandos o aplicaciones de alto consumo.
- Amplíe la instancia.
Comprobación de reescritura de Redis
La persistencia de AOF, que está habilitada de forma predeterminada para las instancias principal/en espera y de clúster de DCS Redis, tiene lugar en los siguientes escenarios:
- Si se escribe una pequeña cantidad de datos y el archivo AOF no es grande, la reescritura de AOF se realiza de 01:00 a 04:00 de la mañana todos los días, y el uso de la CPU puede aumentar repentinamente durante este período.
- Cuando se escribe una gran cantidad de datos y el tamaño del archivo de AOF excede el umbral (de tres a cinco veces la capacidad de instancia de DCS), la reescritura de AOF se activa automáticamente en segundo plano independientemente de la hora actual.
La reescritura de Redis se realiza ejecutando el comando BGSAVE o BGREWRITEAOF, que puede consumir muchos recursos de CPU (vea la discusión). Los comandos BGSAVE y BGREWRITEAOF necesitan bifurcar(), lo que resulta en picos de uso de la CPU en un corto período de tiempo.
Si no se requiere persistencia, desactívela cambiando el valor de appendonly a no en la página Parameters de la instancia. Sin embargo, si desactiva la persistencia, la pérdida de datos puede ocurrir debido a la falta de vaciado de datos en el disco en las situaciones extremas.
Uso de Redis Preguntas frecuentes
- ¿Qué es la memoria reservada? ¿Cómo configuro la memoria reservada?
- ¿Qué son las cantidades de partición y de réplicas?
- ¿Por qué el uso de CPU de una instancia de DCS Redis es 100%?
- ¿Puedo cambiar la VPC y la subred de una instancia de DCS Redis?
- ¿Por qué no se pueden configurar los grupos de seguridad para las instancias de edición básica de DCS Redis 4.0/5.0/6.0?
- ¿Las instancias de DCS Redis limitan el tamaño de una clave o de un valor?
- ¿Puedo obtener las direcciones de los nodos en una instancia de DCS Redis de clúster?
- ¿Por qué la memoria disponible es más pequeña que el tamaño de caché de instancia?
- ¿DCS for Redis admite la separación de lectura/escritura?
- ¿DCS for Redis soporta multi-BD?
- ¿Cómo sé si una instancia es de BD única o de BD múltiples?
- ¿DCS for Redis admite Clúster Redis?
- ¿Qué es Sentinel?
- ¿DCS for Redis es compatible con Sentinels?
- ¿Cuál es la política predeterminada de desalojo de datos?
- ¿Qué debo hacer si ocurre un error en redis_exporter?
- ¿Cómo puedo proteger mis instancias de DCS Redis?
- ¿Por qué las instancias de Clúster Proxy de DCS Redis 3.0 no soportan el bloqueo distribuido de Redisson?
- ¿Puedo personalizar o cambiar el puerto para acceder a una instancia de DCS?
- ¿Puedo modificar las direcciones de conexión para acceder a una instancia de DCS?
- ¿Por qué no puedo eliminar una instancia?
- ¿DCS admite el despliegue entre las AZ?
- ¿Por qué se necesita mucho tiempo para iniciar una instancia de clúster de DCS?
- ¿DCS for Redis proporciona software de gestión de backend?
- ¿Por qué se utiliza la memoria de una instancia de DCS Redis por pocas claves?
- ¿Puedo recuperar datos eliminados de una instancia de DCS?
- ¿DCS for Redis admite la transmisión cifrada de SSL?
- ¿Cómo puedo habilitar o deshabilitar SSL para el acceso público a una instancia de DCS Redis 3.0?
- ¿Por qué la memoria disponible de las instancias de DCS no utilizadas es menor que la memoria total y por qué el uso de la memoria de las instancias DCS no utilizadas es mayor que cero?
- ¿Cómo calculo el uso de la memoria de Redis?
- La capacidad y el rendimiento de la instancia de Clúster Redis están todavía bajos, ¿por qué se sobrecarga la capacidad o el rendimiento de una partición?
- ¿DCS admite los complementos, extensiones o módulos externos?
- ¿Por qué desaparece una clave en Redis?
- ¿Por qué ocurre un error de OOM durante una conexión de Redis?
- ¿Qué clientes puedo utilizar para Clúster Redis en diferentes lenguajes de programación?
- ¿Por qué necesito configurar el tiempo de espera para Clúster Redis?
- ¿Por qué veo un error de tiempo de espera al leer datos de Redis?
- ¿Cuáles son las limitaciones en el despliegue de multi-BD en una instancia de Clúster Proxy?
- ¿Puedo cambiar la AZ de una instancia?
- Explicación y uso de etiquetas de hash
- ¿Se conservarán los datos almacenados en caché después de reiniciar una instancia?
- ¿Cómo puedo comprar una instancia de multi-BD de Clúster Proxy?
- ¿Por qué se congela una instancia?
Comentarios
¿Le pareció útil esta página?
Deje algún comentariomore