Отдача больших файлов
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