Мой физический сервер зависает случайным образом, и в это время я не получаю никаких записей в журнале. Итак, я запустил скрипт:
while true; do date >>/tmp/dates; sleep 1; done & disown
Через несколько минут в файле / tmp / date появляются «дыры». Иногда свидания прерываются на 30 секунд, иногда на 3 минуты подряд:
Thu Feb 13 14:54:39 CET 2014
Thu Feb 13 14:54:40 CET 2014
Thu Feb 13 14:57:45 CET 2014
Thu Feb 13 14:57:46 CET 2014
Сервер не показывает высокую загрузку или использование памяти. / var / log / messages ничего не показывает, когда сервер зависает. Однако в нем есть сообщения о проблемах ввода-вывода, таких как соединение по волоконно-оптическому каналу, которое дремлет. Я загружаюсь из SAN, поэтому / находится на устройстве с несколькими устройствами. Если я позвоню
while true; do date >>/tmp/dates; sleep 1; done & disown
while true; do date >>/dev/shm/dates; sleep 1; done & disown
Не будет дыр в / dev / shm /ates, но будут дыры в / tmp /ates, поэтому я думаю, что это не ситуация зависания ядра, а ситуация зависания ввода-вывода.
Вверху я не вижу процессов в состоянии непрерывного сна. Нет записей в журнале оборудования или хранилища, которые кажутся важными.
Однако iostat показывает высокие всплески задержки при ожидании:
03/28/14 12:32:00
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 214.00 0.00 0.00 100.00
03/28/14 12:32:01
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 214.00 0.00 0.00 100.00
03/28/14 12:32:02
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 214.00 0.00 0.00 100.00
03/28/14 12:32:03
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 1219.00 0.00 4.76 8.00 45.61 5251.48 0.82 100.40
03/28/14 12:32:04
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.99 0.00 0.00 99.60
03/28/14 12:32:05
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.01 0.00 0.00 100.40
03/28/14 12:32:06
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.00 0.00 0.00 100.00
Может быть, ядро ждет ввода-вывода из хранилища и ничего не делает до прихода блока? Что еще это может быть? Как я могу узнать?
Просматривая журнал ошибок FC-коммутатора, мы обнаружили один порт с огромным журналом ошибок. Мы отключили этот порт и не видели ошибки целые выходные. Поэтому я думаю, что эта ошибка была вызвана нарушением пути волоконно-оптического канала. Обычно, насколько мне известно, такая ошибка должна обнаруживаться (например, с помощью multipathd), регистрироваться и автоматически исправляться. Итак, я предполагаю, что мы имеем дело с одним из случаев необнаруженной неисправности тракта фиброканала.