ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: feature request: sendfile management



Andrei Nigmatulin пишет:
On Thursday 25 October 2007 18:13, Alex Vorona wrote:
MZ пишет:
В пн, 22/10/2007 в 10:11 +0400, Igor Sysoev пишет:
On Mon, Oct 22, 2007 at 09:41:23AM +0400, Andrey N. Oktyabrski wrote:
sendfile - это вообще не стандратная вещь. Для Линуксе, например,
пришлось сделать специальную обработку 2G+ файлов для sendfile32().
Я понимаю.
Но тормозит ведь! Может и для фри  #ifdef поставить ? Я бы и сам сделал,
но не занимаюсь плотно С - могу накосячить.
простым #ifdef тут наврядли обойтись получится. На одном и том же файле
в течение одного запроса sendfile()'ы  могут и блокироваться и не
блокироваться, например в зависимости от загрузки дисков и/или от
скорости канала к клиенту. Можно конечно упростить задачу, и, как только
sendfile() заблокировался первый раз - продолжать отдавать файл через
read/write. Насколько эта схема будет эффективной - вопрос второй.

Какие ещё могут быть варианты ухода nginx от блокировки на диске,
забывая про AIO?

Например, отдельный поток в котором выполняются все блокирующиеся операции. И уведомление о готовности основного потока через pipe/socketpair.


соотвественно каждый воркер должен стать многопоточным. Как с многопоточностью обстоят дела во FreeBSD ? И чем тогда ситуация с N двухпоточными воркерами будет отличаться от одного многопоточного воркера?



 




Copyright © Lexa Software, 1996-2009.