Re: Сильная нагрузка на сервер- стриминг FLV
CoolCold
coolcold на coolcold.org
Пт Ноя 4 21:00:16 UTC 2011
Hello CoolCold,
Saturday, October 29, 2011, 8:36:14 AM, you wrote:
C> Hello Андрей,
C> Monday, October 24, 2011, 3:44:20 PM, you wrote:
АВ>> 24.10.2011 14:19, Gena Makhomed пишет:
>>> по какой причине этот вариант "почти рейд1" реализованный
>>> скриптами и через try_files будет лучше нормального raid1 ?
>>>
>>> есть ли данные экспериментов linux mdraid + XFS + flv streaming,
>>> которые подтверждают, что "независимые" винты будут лучше raid1
>>> (нормального (не глючного) програмного или нормального аппаратного)?
>>>
>>> когда этот вариант будет хуже - я уже писал, если какой-то файл
>>> становится очень популярным, то винт с ним становится перегруженным
>>> запросами, а все остальные винты при этом будут практически простаивать,
>>> и суммарная производительность сервера будет меньше, чем могла бы быть в
>>> случае использования нормального, а не "самодельного" raid1 массива.
>>>
>>> кстати, в raid1 массиве не обязательно должно быть всего 2 винта.
>>> вполне может быть 2, 3, 4, 5, 6, 7, ... с соответствующим ростом
>>> производительности массива raid1 при множественных random read.
>>>
АВ>> За рейд1 точно не скажу, потому что не помню как там куски файла
АВ>> отдаются одному клиенту - всегда с одного диска или попеременно с разных
АВ>> дисков, однозначно будет хуже в момент записи, так как запись идет
АВ>> одновременно на все веники, остальные рейды проигрывают однозначно.
C> Там в комментариях написано:
C> 460 /*
C> 461 * This routine returns the disk from which the requested read should
C> 462 * be done. There is a per-array 'next expected sequential IO' sector
C> 463 * number - if this matches on the next IO then we use the last disk.
C> 464 * There is also a per-disk 'last know head position' sector that is
C> 465 * maintained from IRQ contexts, both the normal and the resync IO
C> 466 * completion handlers update this position correctly. If there is no
C> 467 * perfect sequential match then we pick the disk whose head is closest.
C> 468 *
C> 469 * If there are 2 mirrors in the same 2 devices, performance degrades
C> 470 * because position is mirror, not device based.
C> 471 *
C> 472 * The rdev for the device selected will have nr_pending incremented.
C> 473 */
C> from
C> http://neil.brown.name/git?p=linux-2.6;a=blob;f=drivers/md/raid1.c;h=4602fc57c961fd16edc5d558a050493a878fd50e;hb=HEAD#l460
C> MD(raid) файлами вообще не оперирует, это не его дело, он про них и не знает даже. Поскольку mdraid является блочным
C> устройством, оперирует он блоками (внезапно). В каком месте - с дисков и/или md device происходит кэширование блоков в
C> VFS я не знаю, нужно чтоб кто-нибудь посмотрел в исходники из тех кто знает C & linux kernel. От этого может зависеть
C> эффективность раскладывания файла по standalone дискам/raid1.
Проясняя вопрос:
The kernel caches pages of files, not pages of devices.
It doesn't matter where the page of data came from - it is the page of a file
that is cached.
by Neil Brown from http://www.spinics.net/lists/raid/msg36418.html
Так что использование одного файла на одном устройстве вместо нескольких одинаковых файлах на разных устройствах будет
(немного) выгоднее. Для разных файлов на разных устройствах получается что без разницы.
C> Заодно, может не все знают, но:
C> Individual devices in a RAID1 can be marked as "write-mostly".
C> These drives are excluded from the normal read balancing and will only
C> be read from when there is no other option. This can be useful for
C> devices connected over a slow link.
C> from http://neil.brown.name/git?p=mdadm;a=blob;f=md.4;h=99faad1ac50c48a3592b7ac27e5c1a8d20070923;hb=HEAD#l217
C> через что, если массив небольшой, можно подключать в пару sata + ssd диски и раздача будет вестись с ssd только.
АВ>> По
АВ>> поводу неравномерной нагрузки - да такое бывает, обычно самые популярные
АВ>> файлы попадают в кеш ОС, если даже и этого не хватает, у меня на этот
АВ>> случай есть скрипт, который перенесет часть активных файлов на другие,
АВ>> менее нагруженные веники, для 1-но гигабитных серверов с 6-ю вениками
АВ>> случаи перегрузки одного веника крайне редки, быстрее все же упирается в
АВ>> канал. Скрипт используется в частности на 5-ти гбитном сервере с 8-ю
АВ>> вениками и даже не по крону или как демон, так как случаи все равно
АВ>> довольно редки.
C> Best regards,
C> CoolCold [COOLCOLD-RIPN]
C> _______________________________________________
C> nginx-ru mailing list
C> nginx-ru на nginx.org
C> http://mailman.nginx.org/mailman/listinfo/nginx-ru
np: < The system cannot find the file specified (e:\xmedia.info.txt) >
Best regards,
CoolCold [COOLCOLD-RIPN]
Подробная информация о списке рассылки nginx-ru