100% iowait + неисправности диска в dmesg
У меня есть сервер, на котором находится довольно посещаемое веб-приложение.
Он имеет raid1 из 2 жестких дисков, 64 МБ буфера, 7200 об / мин.
Сегодня он начал выбрасывать ошибки, такие как:
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
Весь день он был в нагрузке выше 10-15.
Я наблюдаю за этим сверху, и он дает некоторые странные показания:
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 |
Я, честно говоря, не понимаю, почему только sda принимает на себя весь удар. У меня есть один процесс, который постоянно пишет с 1-2megs, но какого черта.. 100% Iowait?
Обновить:
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
3 ответа
Похоже, что диск может выходить из строя - система сбрасывает диск / соединение, пытаясь подключиться к нему. Я предполагаю, что поскольку вы можете видеть состояние как sda, так и sdb, это программный рейд, поэтому вы должны проверить /proc/mdstat, чтобы увидеть, что может происходить с программным рейдом.
IOWait - потому что программный рейд задерживается в ожидании записи в sda. Это, в свою очередь, задерживает процессы и вызывает высокую загрузку.
Вы должны заменить свой sda как можно скорее.
Sda не обрабатывает запросы ввода-вывода в кратчайшие сроки. Если это не привод, то у вас дисбаланс в I/O. У вас есть раздел подкачки на sda? Если это так, у вас могут возникнуть проблемы с памятью, приводящие к перегрузке страниц памяти во время обмена. Убедитесь, что у вас есть место подкачки на обоих дисках с одинаковым приоритетом. Программа Сар может быть полезной.