ПРОЕКТЫ 


  АРХИВ 


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: worker_connections 50;



Воркеров должно быть больше, чем макс. возможное количество единомоментно обрабатываемых запросов.

17 сентября 2008 г. 14:34 пользователь Rauan Maemirov <rauan1987@xxxxxxxxx> написал:
Здравствуйте.

А можно узнать, что значит "работа в режиме Апача"?

2008/9/17 Igor Sysoev <is@xxxxxxxxxxxxx>

On Wed, Sep 17, 2008 at 12:45:58PM +0400, Михаил Монашёв wrote:

> ММ> В  какти  по  графику  видно,  что accepts requests и handled requests
> ММ> разошлись  в  разные  стороны:  accepts  requests  выросло,  а handled
> ММ> requests  упало до нуля.
>
> Причём worker_connections 50; было выставлено в 19-00, а графики
> начали расходиться только 23-00. Т.е. в начале, на больой нагрузке всё
> отлично работало. А как она начала спадать, так постепенно, где-то за
> два часа, отдача статики перестала работать.

Поскольку nginx не планировался для работы в режиме Апача,
то там есть такое ограничение - если свободных соединений меньше
NGX_ACCEPT_THRESHOLD (100), то accept'ы штрафуются - они пропускаются.
В случае "worker_connections 50" штраф наступает после первого же accept'а.
На большой нагрузке штраф имеет большие шансы быстро кончиться, а на малой -
не кончиться вообще.

Текущий workaround:

event {
  accept_mutex  off;
}

Надо бы пересмотреть логику: по крайней мере, сделать NGX_ACCEPT_THRESHOLD
автонастраиваемым в зависимости от worker_connections, например,

   worker_connections / 10


--
Игорь Сысоев
http://sysoev.ru





--
С уважением, Борис Долгов.
icq 77556665
e-mail boris@xxxxxxxxxxx


 




Copyright © Lexa Software, 1996-2009.