100% iowait + fallas de unidad en dmesg

100% iowait + fallas de unidad en dmesg

Tengo un servidor en el que reside una aplicación web bastante visitada.
Tiene un raid1 de 2 HDD, 64MB Buffer, 7200 RPM.
Hoy empezó a arrojar errores como:

kernel: ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
kernel: ata2.00: cmd b0/d0:01:00:4f:c2/00:00:00:00:00/00 tag 0 pio 512 in
kernel: res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
kernel: ata2.00: status: { DRDY }
kernel: ata2: hard resetting link
kernel: ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
kernel: ata2.00: max_sectors limited to 256 for NCQ
kernel: ata2.00: max_sectors limited to 256 for NCQ
kernel: ata2.00: configured for UDMA/133
kernel: sd 1:0:0:0: timing out command, waited 7s
kernel: ata2: EH complete
kernel: SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
kernel: sda: Write Protect is off
kernel: SCSI device sda: drive cache: write back    

Todo el día ha estado con una carga superior a 10-15.
Lo estoy monitoreando desde arriba y da algunas lecturas extrañas:

DSK |          sda | busy    100% | read       2 | write    208 | KiB/r     16 | KiB/w     32 | MBr/s   0.00 | MBw/s   0.65 | avq    86.17 | avio 47.6 ms |
DSK |          sdb | busy      1% | read      10 | write    117 | KiB/r     17 | KiB/w      5 | MBr/s   0.02 | MBw/s   0.07 | avq     4.86 | avio 1.04 ms |

Francamente, no entiendo por qué sólo sda está sufriendo todo el impacto. Tengo un proceso que escribe constantemente con 1-2 megas, pero ¿qué diablos... 100% iowait?

Actualización:
smartctl -A /dev/sda

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
3 Spin_Up_Time            0x0027   239   239   021    Pre-fail  Always       -       8050
4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       22
5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       595
10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -        21
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       20
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       22
194 Temperature_Celsius     0x0022   118   106   000    Old_age   Always       -       32
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0 
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

Respuesta1

Parece que la unidad puede estar fallando: el sistema está reiniciando la unidad/la conexión intentando comunicarse con ella. Supongo que como puedes ver el estado de sda ​​y sdb, se trata de una incursión de software, por lo que deberías poder consultar /proc/mdstat para ver qué puede estar pasando con la incursión de software.

La IOWait se debe a que el raid de software está retenido esperando escribir en sda. Esto, a su vez, retrasa los procesos y provoca un número de carga elevado.

Deberías reemplazar tu sda lo antes posible.

Respuesta2

Me parece un disco defectuoso...

Respuesta3

sda no procesa las solicitudes de E/S con prontitud. Si no es la unidad, entonces hay un desequilibrio en la E/S. ¿Tiene una partición de intercambio en sda? Si es así, podría tener problemas de memoria que provoquen que las páginas de memoria entren y salgan del intercambio. Asegúrese de haber asignado espacio de intercambio en ambas unidades con la misma prioridad. El programa sar puede resultar útil.

información relacionada