ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.