Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Сильная нагрузка на сер вер- стриминг FLV
On 24.10.2011 14:44, Андрей Василишин wrote:
по какой причине этот вариант "почти рейд1" реализованный
скриптами и через try_files будет лучше нормального raid1 ?
есть ли данные экспериментов linux mdraid + XFS + flv streaming,
которые подтверждают, что "независимые" винты будут лучше raid1
(нормального (не глючного) програмного или нормального аппаратного)?
когда этот вариант будет хуже - я уже писал, если какой-то файл
становится очень популярным, то винт с ним становится перегруженным
запросами, а все остальные винты при этом будут практически простаивать,
и суммарная производительность сервера будет меньше, чем могла бы быть в
случае использования нормального, а не "самодельного" raid1 массива.
кстати, в raid1 массиве не обязательно должно быть всего 2 винта.
вполне может быть 2, 3, 4, 5, 6, 7, ... с соответствующим ростом
производительности массива raid1 при множественных random read.
За рейд1 точно не скажу, потому что не помню как там куски файла
отдаются одному клиенту - всегда с одного диска или попеременно с разных
дисков,
для варианта нагрузки "random read" разве есть какая-то разница,
с того же самого винта будет отдаваться следующий фрагмент файла,
или с другого винта? всеравно между этими двумя запросами винт успеет
выполнить десятки или даже сотни других запросов на чтение фрагментов
других файлов. если я не ошибаюсь, нормальный рейд выбирает наименее
загруженный запросами винт, чтобы равномерно распределить запросы
на чтение по всем компонентам массива. и это по идее должен быть
самый оптимальный вариант массива для увеличения производительности.
однозначно будет хуже в момент записи, так как запись идет
одновременно на все веники,
если запись происходит часто и это вызывает какие-то проблемы -
тогда писать новые файлы на массив можно с низким приоритетом
(man ionice), чтобы не создавать этим каких-то проблем операциям чтения.
остальные рейды проигрывают однозначно.
не все так однозначно. в случае если используются не HDD,
а SSD более производительным вариантом массива в некоторых
случаях будет raid0, потому что для SSD дисков seek time == 0.
а если для SSD надо и производительность и надежность - то raid10.
По поводу неравномерной нагрузки - да такое бывает, обычно самые популярные
файлы попадают в кеш ОС, если даже и этого не хватает, у меня на этот
случай есть скрипт, который перенесет часть активных файлов на другие,
менее нагруженные веники, для 1-но гигабитных серверов с 6-ю вениками
случаи перегрузки одного веника крайне редки, быстрее все же упирается в
канал. Скрипт используется в частности на 5-ти гбитном сервере с 8-ю
вениками и даже не по крону или как демон, так как случаи все равно
довольно редки.
это наверное потому, что нет очень популярных (больших) файлов
и нагрузка распределяется более-менее равномерно по всем винтам.
в любом случае, отдавать какой-то файл одновременно с N винтов -
это будет более производительный вариант, чем отдавать его с одного
единственного винта. и как минимум для стриминга где бывают очень
популярные файлы, к которым большое количество обращений - вариант
raid1 может оказаться лучше, чем "независимые винты" и try_files.
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|