Caso de análisis de rendimiento de Redis 1: alta carga de io de Linux causada por RDB

1. Antecedentes

反馈linux磁盘IO高,部署在服务器上的服务,响应很慢,需要排查解决;

2. Análisis y solución de problemas

1. Determinar qué proceso ocupa el IO

Después de ingresar al servidor, directamente en el análisis superior, el valor wa en la figura a continuación es muy alto, lo que indica que la carga de IO es muy alta; verifique qué procesos consumen más IO y descubrí que el IO de escritura del proceso redis-sever es muy alto, como se muestra en la figura a continuación, entonces estoy interesado e inmediatamente preparé una captura de pantalla para registrar el proceso de análisis de este problema; el archivo de escritura es muy alto, no es necesario confirmar que es el proceso RDB de Redis, y el proceso de escritura de la memoria instantánea en el disco es
inserte la descripción de la imagen aquí
lento
inserte la descripción de la imagen aquí
;

2. ¿Por qué ocupa tanto?

¿Por qué comes tanto IO?
Como se puede ver en la figura anterior, la velocidad de escritura del proceso es de aproximadamente 30 M/s, así que verifiquemos el tamaño del archivo RDB; la figura a continuación es de aproximadamente 4G; luego, de acuerdo con la velocidad de 30 M/s, tomará aproximadamente 40000/30 = 1333 s. Entonces, en este momento, sospecho que la capacidad de E/S del servidor es relativamente pobre;
inserte la descripción de la imagen aquí
cómo verificar el rendimiento de E/S del servidor: Ejecute el siguiente comando, lo que significa escribir un archivo G en el disco, verifique la situación que lleva mucho tiempo, el valor máximo básico es 60 M/s; pruebe el rendimiento del disco en uno de mis propios entornos de prueba de Linux: 370 M/s significa escribir un archivo 4G localmente, menos de 10
inserte la descripción de la imagen aquí
s
;
inserte la descripción de la imagen aquí

3. Cómo resolver

A partir del análisis anterior, se puede ver que el rendimiento de E/S del disco del servidor en sí es relativamente bajo, por lo que el proceso Redis RDB escribe un archivo 4G en el disco muy lentamente, con una velocidad de escritura de 3 M/s, y una E/S de disco ligeramente normal puede alcanzar básicamente cientos de M/s, por lo tanto, envíe comentarios sobre la operación y el mantenimiento para verificar el rendimiento del disco o reemplazar el hardware;

3. Resumen

      从上述的过程来看,RDB的过程是很依赖磁盘IO性能的,但是RDB的过程是不阻塞Redis的正常的执行,一旦是RDB文件的写入导致的服务器IO高,是会影响到该服务器上的其他服务进程的性能;
      也从另外一个角度来讲,RDB的过程似乎把内存大小控制在4g左右是个比较合理的值,因为内存大的实例,Fork子进程这个过程必然会相对耗时些,同时持续会写入会更长,对磁盘性能是考验;如果内存不足,但是需求很高,并发很高,倒是可以部署多节点的集群模式,即表达的意思是,部署20个4g的redis节点,比部署4个20G的redis集群节点,性能更佳,但是带来的是运维上和机器的成本;

Supongo que te gusta

Origin blog.csdn.net/wf_feng/article/details/121182522
Recomendado
Clasificación