Отдача больших файлов

MZ zuborg at advancedhosters.com
Mon Mar 16 14:48:49 MSK 2009


Михаил Монашёв wrote:
> Здравствуйте, MZ.
> 
>>>> Смотря как читать, round-robin возможно (и то, если отдается только один
>>>> файл на текущий момент, и опять же, это не замедляет!, а всего лишь
>>>> приводит к скорости одиночного диска), но на самом деле нет препятствий
>>>> чтобы читать большой файл с того диска в зеркале откуда это удобней
>>>> (читай - быстрее) делать.
>>> Жду от Вас патча для gmirror.
>>> Там проблема вроде в том, что geom оперирует блоками, а не файлами.
> 
> M> Патч давно доступный:
> M> http://www.freebsd.org/cgi/query-pr.cgi?pr=113885
> 
> M> Где "там" и в чем суть проблемы ?
> 
> Патч  интересный.  Жаль,  что  он  помнит только последний прочитанный
> блок.  Там  бы  чуть иначе написать: если в зеркале 3 диска, то читать
> все  блоки, имеющие offset в первой трети зеркале, с первого диска, во
> второй  -  со  второй,  в третьей - с третьего. Правда для равномерной
> нагрузки  придётся  зеркало  сильно  заполнить данными. Но и это можно
> исправить:  побить  все  пространство  не  на 3 части в случае с тремя
> дисками в зеркале, а скажем на 300...
> 
> Записал задачку к себе в TODO...

Направление правильное, когда каждый диск обслуживает свою небольшую 
зону мы получаем дополнительный прирост производительности.

3 vs 300 - у нас диск изначально побит на BYTES/512 блоков )
вопрос в том как их учитывать, чтоб нагрузить все диски по максимуму.

У меня есть пару мыслей, но для полной реализации мне нужно сканировать 
всю очередь активных, но незавершенных запросов для указанного geom-а, я 
пока-что не нашел как это сделать :(
Как вариант - хранить и обновлять такую очередь прямо в модуле gmirror 
для каждого диска, но это лишний код и лишние возможности для глюков, но 
если по другому нельзя - придется так и сделать.

> --
> 
> С уважением,
> Михаил Монашёв, SoftSearch.ru
> mailto:postmaster at softsearch.ru
> ICQ# 166233339
> http://michael.mindmix.ru/
> Без бэкапа по жизни.
> 
> 






More information about the nginx-ru mailing list