У меня сильно различаются производительность и поведение программного обеспечения raid10 на двух идентичных машинах.
У меня есть две аппаратно идентичные машины, купленные в одно и то же время, с одинаковыми версиями программного обеспечения, версиями оборудования и версиями прошивки. У каждого есть контроллер SAS с 8 каналами по 6 Гбит / с, идущими к корпусу SAS, который вмещает 12 дисков SAS.
На машине 1, которая стабильна и, кажется, работает идеально, каждый диск в массиве raid ведет себя более или менее одинаково: время занятости одинаково (около 33% на всех дисках в производственных уровнях нагрузки), а еженедельная проверка программного обеспечения raid check запускается, производительность записи и чтения не снижается. Полная проверка рейда завершается примерно через день, при этом используется вся доступная свободная пропускная способность, чтобы завершить ее как можно быстрее. Это составляет около 200 МБ / с чтения, пока эта проверка завершается.
Машина 2 - проблемный ребенок. Полная проверка рейда практически никогда не завершается, хотя она также настроена на использование всей доступной пропускной способности диска. Пока он пытается проверить, он набирает скорость 5 МБ / с, а производительность записи за это время падает примерно до 30 МБ / с. Кроме того, четыре диска загружены на 35%, а остальные в среднем на 22%.
После отмены рейдовой проверки на машине 2 скорость записи возвращается примерно к 160 МБ / с.
Если я использую dd
проверить каждого в отдельности mpath
устройства, на машине 1 я получаю максимальную скорость около 145 МБ / с при чтении на диск, а самую низкую - 119 МБ / с, за которой следует 127 МБ. Все остальные находятся в диапазоне 145 МБ / с.
На машине 2 я получаю скорость от 107 МБ (x 3 диска), а остальные - выше 135 МБ / с, с пиковым значением 191 МБ / с (!) Для одного диска.
Я признаю, что нахожусь здесь вне зоны комфорта, но не могу найти никаких доказательств, из которых можно было бы сделать вывод. Я также проверил статистику SMART на каждом диске на обеих машинах, и, хотя на всех дисках имеется изрядное количество ошибок с исправлением чтения, похоже, нет корреляции между значениями и производительностью чтения, а также между разницей в% занятости .
Ничего из того, что я могу найти, не объясняет плохую производительность при выполнении проверки массива RAID на одном ящике по сравнению с другим. Мы будем благодарны за предложения о том, куда идти дальше для отладки.
Я нашел проблему. Кэш записи был отключен на 4 из 12 дисков в программном массиве.
Вот что я сделал, чтобы сузить круг вопросов:
Я разбил массив и использовал dd с oflag = direct для проверки скорости записи на каждый диск. Я обнаружил, что те, у которых выше процент занятости, также могли писать только около 75 МБ / с, в то время как все остальные могли делать 180 МБ / с для постоянной записи размером 1 ГБ и 10 ГБ.
Однако, поскольку все 4 медленных диска очень согласовывались друг с другом, я начал копаться и установил sdparm
чтобы позволить мне возиться со страницами параметров SCSI.
Как только я увидел, что WCE по умолчанию (включение кеширования записи) включено, но на этих четырех дисках он был выключен, я включил его. Скорость записи выросла до отметки 180 МБ / с, и теперь массив перестраивается со скоростью 1 ГБ / с (это примерно максимум, который этот набор дисков может сделать с этим контроллером).
Команда проверки sdparm --get=WCE /dev/mapper/mpatha
и установить его, sdparm --set=WCE --save /dev/mapper/mpatha
для будущих пользователей.
Кроме того, была включена экономия энергии - это препятствовало кэшированию на уровне ОС для поддержания скорости, хотя oflag = direct все еще работало.