Re[2]: Еще раз о дисковой подсистеме

Илья Винокуров ilvin на mail.ru
Чт Авг 18 13:48:38 UTC 2011


18 августа 2011, 13:00 от Igor Sysoev <igor at sysoev.ru>:
> On Thu, Aug 18, 2011 at 12:49:23PM +0400, Илья Винокуров wrote:
> > А у меня другое мнение.
> > Для раздачи long статики (фильмы длинные) RAID 10 будет эффективнее, чем независимые винты:
> >
> > 1) При раздаче одного файла участвуют все диски (у независимых винтов только один)
> 
> Именно. То есть, весь рэйд при этом работает со скоростью одного диска.

Для одного потока да - RAID10 может работать со скоростью одного винта, но Вы рекомендуете запускать
столько процессов nginx, сколько ядер в системе... А в системе сейчас от 2-х ядер.
Так вот, при параллельной работе нескольких потоков запросы к массиву будут параллелиться между дисками.
Рассматриваем ситуацию, когда разным процессам нужны разные блоки данных одного длинного файла.
В схеме же с отдельными дисками один популярный длинный фильм может убить весь сервер, который
только и будет делать, что ждать задыхающийся винт.

> Для современного диска нет ощутимой разницы в чтении 1К или 1М. Поэтому
> читать с нескольких дисков блоки по 128К, чтобы набрать 1М - бессмысленно.

Поэтому я и предложил увеличить размер блока данных.

> > PS: При монтировании RAID10 для длинных файлов следует увеличить величину блока
> > до 1..2 мегабайт. 

> И многие рэйд позволяют подобное увеличение ?

Конечно же, речь идет о софтовом решении. По моему мнению будущее за софтовыми RAID массивами,
а точнее за RAIDовыми FS.

> И всё равно он не полностью решает проблему - при попадании на границу
> будут задействованы два диска вместо одного ?

Если рассматривать работу в системе кучки процессов, насилующих RAID массив, то факт попадания одного
файла на границу не играет никакой роли. Главное, чтобы план чтения блоков с конкретного диска был
оптимальным. Посему рекомендации сводятся к использованию SAS дисков.


С почтением,
  Илья Винокуров.


Подробная информация о списке рассылки nginx-ru