Следующий сценарий повторился дважды с разными RAID-контроллерами. Одним из них был LSI MegaRAID с RAID5, вторым - HP Smart Array E200i с RAID1. Сначала сервер работает без сбоев несколько лет. Потом люди начинают жаловаться на производительность. Тогда оказывается, что это не просто «проблема приложения», потому что простые операции с диском (например, ls в каталоге с 20-30 файлами) могут занять до 5 секунд. Вот что сообщает vmstat при большой нагрузке:
procs -----------memory------------ ---swap-- -----io---- -system-- ----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 8 8944 126004 20 1597500 0 0 1666 5935 282 833 10 3 0 86
1 16 8944 122276 20 1599636 0 0 612 6300 314 615 10 3 0 87
1 12 8944 123740 20 1599332 0 0 811 5103 188 794 2 2 0 96
0 19 8944 121916 20 1600808 0 0 150 7299 163 858 1 1 0 97
0 16 8944 239244 20 1612256 0 0 647 2522 156 798 0 1 0 99
0 6 8944 215308 20 1643712 0 0 3030 3060 201 956 33 5 0 62
1 13 8944 186352 20 1672540 0 0 143 6173 166 931 14 8 0 78
8 2 8944 137368 20 1710432 0 0 111 6425 171 833 48 4 0 48
1 11 8944 122500 20 1725892 0 0 306 5222 153 746 69 4 0 27
24 13 8944 128444 20 1729680 0 0 380 5210 170 4484 16 6 8 70
0 4 8944 124956 20 1731228 0 0 389 4933 272 761 4 2 0 93
0 6 8944 123004 20 1735780 0 0 15 7856 209 682 1 2 7 90
Таким образом, сервер выводится из производственного использования, тестируется с помощью bonnie ++ и контролируется с помощью vmstat, что дает примерно те же результаты. Так что вроде бы диски неисправные. Однако при запросе RAID-контроллера выясняется, что и логический диск, и физические диски в порядке. Также журналы ядра не содержат сообщений, которые могут указывать на проблемы с дисковыми операциями.
Итак, мой вопрос: как мне дальше отлаживать эту проблему? Должен ли я заменить контроллер / диски и просто посмотреть, после чего ситуация с заменой улучшилась? Или, может быть, можно выполнить какую-то команду и изучить ее результаты, чтобы точно определить местонахождение проблемы?
неужели кеш записи отключили? может аккумулятор разрядился и он переключился с обратной записи на сквозную?
некоторые дешевые аппаратные рейды без батареи и с кешем по умолчанию включают кеш только для чтения - может быть, вы также настроили его на использование кеша записи, и контроллер «потерял» настройки?
к тому же - может быть неисправен один из приводов? попробуйте посмотреть журналы рейдов [инструмент командной строки MegaCli должен помочь].