Caída masiva e impredecible de E / S en Linux

11

Utilizo las pruebas de Debian sin ningún problema durante ~ 6 años (solo las estoy actualizando regularmente), pero recientemente comenzó a mostrar un comportamiento aleatorio que puede resumirse como "Bajo rendimiento de E / S que persiste hasta el reinicio".

El problema es que, de repente, todas las lecturas y escrituras de disco se ralentizan a ~ 5 MB / seg, lo que resulta en lecturas y escrituras continuas. Dado que la tasa es tan baja, los discos no se ven desafiados o estresados ​​mecánicamente, pero todo se ralentiza hasta que reinicio.

El subsistema de E / S de la computadora consta de un SSD OCZ Vertex 3 y dos HDD WD Caviar Black. SSD contiene una parte del sistema operativo con mucha lectura y una partición en el HDD contiene el resto.

Para diagnosticar el problema probé lo siguiente sin éxito:

  • top no muestra ninguna actividad fuera de control ni en el uso de CPU o E / S.
  • hdparmdevuelve clasificaciones de rendimiento normales de los discos (aunque solo lo verifiqué -t).
  • smartctlno muestra ningún problema de rendimiento en los discos. Largas pruebas mostraron que los discos son tan buenos como nuevos.

El sistema tiene un chipset Z77, 16 GB de RAM e CPU Intel i7 3770K y las estadísticas no muestran signos de saturación en RAM, E / S o CPU, pero no tengo experiencia para depurar problemas como este (especialmente en el espacio del kernel). Cualquier ayuda será apreciada.

Actualización 1:

  • Corrí (forzado) fsck en cada partición como medida de precaución. Todos los FS están limpios.
  • Por cierto, encontré una actualización de BIOS que salió hace un mes y la apliqué.
  • Ninguna partición se llena más del 50%.

Actualización 2:

El problema no está surgiendo durante dos días. O fsckla actualización del BIOS limpió algunas obstrucciones en el sistema. Todavía estoy monitoreando el problema y cerraré la pregunta con una respuesta post mortem.

Actualización 3:

El problema simplemente resurgió y cavé un poco más. Por favor mira la respuesta.

bayindirh
fuente
1
podría ser un problema de fragmentación que atople indicaría qué tan ocupados están los discos (como cuando se busca todo el tiempo).
Stéphane Chazelas
1
Solo para descartar algunas peculiaridades, desactive NCQ y configure el programador de E / S en noop.
frostschutz
1
El "bajo rendimiento de E / S que persiste hasta el reinicio" puede ser un dispositivo roto / con errores que toma el bus con demasiada frecuencia durante demasiado tiempo, lo que es terriblemente difícil de diagnosticar antes de cambiar el hardware.
msw
1
Luego, lo siguiente en mi lsit para verificar sería verificar los registros en busca de errores y verificar que haya mucha memoria asignada a los búferes / caché (ver salida de free)
symcbean
1
Es posible que pueda ver, iowaitetc., si está recopilando datos sar. Lo habilitaría sysstatsi aún no se está ejecutando. Puede verificar con la sar -Amayoría de las plataformas tener intervalos de muestra de diez minutos.
Bratchley

Respuestas:

12

Logré reproducir el problema nuevamente y fue el resultado de un gran caché de disco. Mis cachés de disco pueden crecer más de 8 GB y parece que a algunas aplicaciones no les gusta y la E / S sufre.

Soltar cachés de disco echo 3 > /proc/sys/vm/drop_cachescomo raíz soluciona el problema. Actualmente no sé por qué los cachés de disco grandes causan esta degradación de E / S.

Última actualización: después de más investigaciones, descubrí que la cantidad de archivos en la caché estaba provocando el problema. Estaba destrozando los discos mientras intentaba confirmar muchos archivos pequeños en el disco. Desde que utilicé el sistema durante diez años, me decidí y reinstalé con Debian de 64 bits. Ahora está funcionando sin problemas. Probablemente fue un efecto secundario de diez años de actualización al encontrar límites del sistema operativo de 32 bits.

bayindirh
fuente
2

¿Hay algún mensaje sospechoso en dmesg?

Algunas herramientas más que podría tratar de obtener algunos conocimientos sobre los cuellos de botella de su sistema:

  • dstat
  • latencia
  • sysprof
Elias Probst
fuente
Nada sospechoso en ningún registro. TBH no hay entradas de registro relacionadas con este problema. Sin embargo, probaré las herramientas. No debe haber un cuello de botella en una PC de gama alta mientras está sentado en reposo sin que se ejecute nada. Creo que un caché o algo relacionado con el subsistema de E / S sale mal.
bayindirh
.... e iotop, fio
symcbean