
Ich habe einen Server, auf dem eine recht häufig besuchte Webanwendung läuft.
Er hat ein RAID 1 mit 2 Festplatten, 64 MB Puffer, 7200 U/min.
Heute hat er angefangen, Fehler wie diese auszugeben:
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
Den ganzen Tag war es einer Belastung von über 10-15 ausgesetzt.
Ich überwache es mit atop und es zeigt einige seltsame Werte an:
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 |
Ich verstehe ehrlich gesagt nicht, warum nur sda die ganze Last abbekommt. Ich habe einen Prozess, der ständig 1-2 Megabyte schreibt, aber was soll's ... 100 % Iowait?
Aktualisieren:
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
Antwort1
Es sieht so aus, als ob das Laufwerk ausfällt – das System setzt das Laufwerk/die Verbindung zurück und versucht, es zu erreichen. Da Sie den Status von SDA und SDB sehen können, vermute ich, dass es sich um ein Software-RAID handelt. Sie sollten also in der Lage sein, /proc/mdstat zu überprüfen, um zu sehen, was mit dem Software-RAID los sein könnte.
Der IOWait liegt daran, dass der Software-RAID beim Warten auf das Schreiben in SDA aufgehalten wird. Dies wiederum hält Prozesse auf und verursacht die hohe Auslastungszahl.
Sie sollten Ihr SDA so schnell wie möglich ersetzen.
Antwort2
Sieht für mich nach einer defekten Festplatte aus ...
Antwort3
sda verarbeitet I/O-Anfragen nicht umgehend. Wenn es nicht am Laufwerk liegt, liegt ein I/O-Ungleichgewicht vor. Haben Sie eine Swap-Partition auf sda? Wenn ja, könnten Sie Speicherprobleme haben, die zu einem Überladen von Speicherseiten in und aus dem Swap führen. Stellen Sie sicher, dass Sie Swap-Speicher auf beiden Laufwerken mit der gleichen Priorität zugewiesen haben. Das Programm sar kann hilfreich sein.