Рейтинг:0

Высокий iowait с RAID0. ЦП 100%. Статические данные не кэшируются в оперативной памяти

флаг us

Я прошу вашей помощи. Я сама уже не вижу выхода.

у меня есть сервер
1x Xeon E-2236
32RAM
4 диска по 10 ТБ (WDC WD101KRYZ-01) - собраны в RAID-0.
Диски быстрые. Каждый по отдельности обеспечивает скорость чтения/записи 250 МБ/с. Массив RAID-0 выдает 900МБ/с — этого вполне достаточно, чтобы прокачать 7-гигабитный канал. Тест проведен с помощью hdparm -t /dev/md0

Сервер предназначен для раздачи больших видео файлов - это сервер потокового видео.

Когда включаю трафик на этот сервер, какое-то время все идет хорошо, но со временем iowait вырастает до максимума. Жесткие диски обрабатывают только 40 запросов в секунду, что очень мало. iowait занят рабочим процессом (nginx).

1. Почему? Что я делаю не так?

Я попытался включить aio для многопоточности в nginx, это помогло, но не обязательно.

Увеличил readahead=8192, blockdev --setra 65536 - результата нет.

2. Почему ядро ​​не пытается кэшировать статические данные в ОЗУ при максимальной загрузке процессора?

Проверил диски. Бэд-секторов нет. HDD - отлично.

3. Почему atop показывает высокую нагрузку только на один диск? (см. скриншот)
4. Не должен ли RAID-0 распределять нагрузку по всем дискам параллельно?

Я прошу вашей помощи. Спасибо!

Michael Hampton avatar
флаг cz
Spinning Rust имеет низкий IOPS, что гораздо важнее, чем скорость последовательного чтения. Вы бы добились большего успеха с десятью дисками по 4 ТБ. И потратил меньше денег.
Grey Hill avatar
флаг us
У меня есть второй точно такой же сервер, с такими же дисками. Работает идеально. Разница только в RAID. RAID-10 на старом сервере. На новом сервере RAID-0. RAID-0 должен быть быстрее, чем 10, верно?
djdomi avatar
флаг za
Hdparm никогда не был надежным источником для тестов. И слова Майкла верны. Spinning Storage очень мало IOPS
djdomi avatar
флаг za
Кстати, вы можете использовать кэширование для повышения производительности.
Grey Hill avatar
флаг us
djdomi, Подскажите, пожалуйста, каким способом вы предлагаете это сделать?
Paul avatar
флаг cn
RAID 10 такое же количество дисков? Одинаковое количество дисков в RAID 10 и 0 даст одинаковую скорость чтения (4x). Интересно, увеличит ли IOPS добавление SSD и его замена?
Рейтинг:0
флаг ca

4 диска по 10ТБ (WDC WD101KRYZ-01) - собраны в RAID-0

Во-первых, позвольте мне предупредить против RAID0, если вы действительно уверен что потеря всех данных из-за плохого диска — это нормально. По правде говоря, на массив RAID0 следует помещать только блокноты, временные или очень легко реконструируемые данные.

Сервер предназначен для раздачи больших видеофайлов - это сервер потокового видео

При последовательном чтении больших файлов, где «большой» на самом деле означает «больше, чем кэш ОЗУ», кэширование неэффективно: поскольку невозможно кэшировать все данные файла в ОЗУ, каждое новое повторное чтение одного и того же файла приведет к удалению ранее кэшированных данных. , фактически постоянно уничтожая ваш собственный кеш.

Жесткие диски обрабатывают только 40 запросов в секунду, что очень мало.

К сожалению, механические жесткие диски очень медленны для небольших случайных операций ввода-вывода: исправный жесткий диск на 7200 об / мин обеспечивает в среднем ~ 70 операций ввода-вывода в секунду при тестировании изолированно, возможно, что-то меньше при помещении в массив RAID.

Тем не менее, потоковый сервис должен нет забить диски небольшими случайными операциями ввода-вывода. Можете ли вы предоставить вывод следующих команд в случае такого большого iowait?

  • лсблк
  • dstat -d -n -f
  • иотоп -а
  • йостат -х -к 1
Рейтинг:-2
флаг us

Есть только одно решение!

Если вам нужна хорошая скорость диска, RAID 0 и 5 даже не стоит рассматривать. Проверено лично)) Да на RAID 0 и 5 у вас будет много свободного места, но скорость будет очень низкая. При высокой нагрузке ваш сервер попросит о помощи.

Я установил программный RAID 10, и мои проблемы исчезли.

Недостатком RAID 10 является его дороговизна. Но если вам повезет, вы найдете хостера с хорошей ценой на серверы.

Всем удачи!

P.S.Вопрос закрыт!

Nikita Kipriyanov avatar
флаг za
**Это определенно неправильно**. RAID0 как раз для потери данных на очень высокой линейной скорости из-за его распараллеливания и отсутствия избыточности. Оптимальное состояние RAID5 и RAID6 должны показывать довольно высокие скорости чтения, чуть меньше, чем у RAID0, потому что распараллеливание у них одинаковое.Ваша проблема где-то в другом месте, а не только на уровне RAID, ваши тесты, вероятно, ошибочны. Пожалуйста, не вводите других в заблуждение.
OnkelJ avatar
флаг in
Я согласен с @NikitaKipriyanov здесь - RAID0 быстрее. Должно быть что-то не так с программным и/или аппаратным обеспечением, чтобы RAID10 работал быстрее. Скорее всего, программное обеспечение / конфигурация, поскольку с RAID10 вы получаете достойную скорость.
vidarlo avatar
флаг ar
Для только чтения, такого как распространение видео, 10 вполне может быть быстрее, так как *те же самые данные* могут быть прочитаны с двух дисков параллельно.
Nikita Kipriyanov avatar
флаг za
@vidario как это возможно? Я бы скорее поверил, что RAID10 покажет точно такую ​​же производительность, как RAID0, с тем же количеством шпинделей. Ни больше, ни меньше, потому что нет причин, чтобы это было больше, нет причин, чтобы это было меньше. И немного лучше, чем RAID5, потому что в каждом страйпе на один блок данных меньше, чем в RAID0. И чуть лучше, чем RAID6, потому что у него на два блока данных меньше в каждом страйпе при том же количестве шпинделей.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.