Welcome! Log In Create A New Profile

Advanced

Re: когда лучше использовать multi_accept on

Валентин Бартенев
June 10, 2016 01:12PM
On Friday 10 June 2016 18:52:35 Sargas wrote:
> Валентин, а скажите, пожалуйста почему будет много лишних вызовов accept()
> с EAGAIN если соединений мало?

Потому что в этом режиме, как я уже писал, nginx в цикле зовет accept() до
тех пор, пока не получит EAGAIN.

Таким образом на каждое событие на listen-сокете мы имеем минимум один вызов
accept() с EAGAIN.

Если рабочему процессу удастся принять 5 соединений, то это будет 5 успешных
accept()-ов и один неуспешный, а если всего одно, то пропорция 1 к 1.


> Это будет только на Linux или на FreeBSD так же?

На FreeBSD директива ни на что не влияет. Там kqueue сообщает о количестве
пришедших соединений в событии и ровно столько раз nginx позовет accept().


>
> На FreeBSD есть accept filter, соответственно если он включен в системе и в
> конфиге nginx, то система знает сколько соединений прошли фильтр и готовы
> для accept. Правильно ли я понимаю что рабочему процессу остается
> обработать известное кол-во соединений и не делать много лишних accept c
> EAGAIN в этом случае?

Accept filter тут не причем. Как я уже описал выше, kqueue сам по себе сообщает
сколько соединений пришло в сокет (независимо от того, используется ли accept
filter или нет), в то время, как epoll сообщает только о факте наличия новых
соединений, но не их количество.

Про accept filter Игорь писал очень давно:
http://sysoev.ru/freebsd/accept-filters.html

В Linux аналогичной цели (уменьшение числа переключений контекста) может служить
опция TCP_DEFER_ACCEPT.

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

когда лучше использовать multi_accept on

VovansystemS May 26, 2016 02:50PM

Re: когда лучше использовать multi_accept on

VovansystemS June 10, 2016 01:42AM

Re: когда лучше использовать multi_accept on

Yuriy Medvedev June 10, 2016 01:50AM

Re: когда лучше использовать multi_accept on

VovansystemS June 10, 2016 02:10AM

Re: когда лучше использовать multi_accept on

Yuriy Medvedev June 10, 2016 03:08AM

Re: когда лучше использовать multi_accept on

VovansystemS June 10, 2016 07:06AM

Re: когда лучше использовать multi_accept on

Валентин Бартенев June 10, 2016 09:00AM

Re: когда лучше использовать multi_accept on

VovansystemS June 10, 2016 10:18AM

Re: когда лучше использовать multi_accept on

Sargas June 10, 2016 11:54AM

Re: когда лучше использовать multi_accept on

Валентин Бартенев June 10, 2016 01:12PM

Re: когда лучше использовать multi_accept on

Sargas June 10, 2016 01:30PM

Re: когда лучше использовать multi_accept on

S.A.N June 10, 2016 10:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 298
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready