Re: Затыки при отдаче статики
Gelun, Artem
a at gelun.ru
Sun Nov 24 20:59:22 UTC 2013
24 ноября 2013 г., 19:26 пользователь Валентин Бартенев
<vbart at nginx.com>написал:
> On Sunday 24 November 2013 14:39:59 Gelun, Artem wrote:
> > Валентин, спасибо. Видимо, я перепутал с BSD-шным sendfile...
> >
> > Комментарий "он будет зваться ровно столько раз, сколько понадобиться
> > для отдачи всего файла" относится, судя по всему, именно к BSD? потому
> > что на Linux просто блокируется вызов до получения полного файла и
> > всё.
>
> Нет. Как уже выше выяснили, он ещё EAGAIN возвращает.
>
Ну EAGAIN, вроде, остаётся только при недостаточности буфера сокета. А в
моём первом вопросе было "при размере файла < размера буфера сокета",
соответственно, данных должно быть меньше, чем буфер и EAGAIN возвращаться
не должен. Или я опять что-то не так понял? ))
> >
> > Используем небольшой свой модуль, который из имени файла делает, по
> > сути, range и отдаёт ответ с кодом 200. Внутри он вызывает
> > ngx_http_output_filter, который занимается всем вводом-выводом, так
> > что "в кишки" мы не лезем.
>
> Там много нюансов, чтобы сломать nginx не обязательно лезть "в кишки".
>
>
> >
> > Включать AIO - не вариант. Отсутствие RA снижает производительность
> > дисков очень значительно (даже при выставлении больших буферов -
> > видимо, за счёт RA RAID-контроллера, который тоже отключается) +
> > отсутствие sendfile прибавляет почти десяткок процентов system time на
> > и без того нагруженном сервере...
>
> Отсутствие RA?
>
> ReadAhead, который отключается при DIRECT_IO, который обязателен для AIO в
linux.
> --
> Валентин Бартенев
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20131125/8f363ee6/attachment.html>
Подробная информация о списке рассылки nginx-ru