EPOLLEXCLUSIVE

Валентин Бартенев vbart на nginx.com
Вс Дек 4 19:58:11 UTC 2016


On Sunday 04 December 2016 14:27:39 windos321 wrote:
> Здравствуйте. 
> Использую следующее ПО:
> nginx 1.11.6
> ubuntu 16.10
> glibc 2.24
> kernel 4.8.12-040812-generic
> 
> С помощью команды:
> (netstat -antp|grep ESTABLISHED|awk -F" " '{print $7}'|sort|uniq -c)
> 
> наблюдаю за количеством соединений на каждый worker, при отключенном
> accept_mutex, как я понимаю, должно работать EPOLLEXCLUSIVE и распределять
> соединения равномерно, но соединения распределяются очень не равномерно, в
> основном все ложится на 1 воркер (80%  соединений) (всего их 6), если
> включаю accept_mutex - все работает нормально, соединения распределяются
> равномерно.
> Почему не работает EPOLLEXCLUSIVE или я не понимаю как он должен работать в
> данном случае?
> 
[..]

EPOLLEXCLUSIVE не для равномерности служит, а для борьбы с thundering herd.
https://en.wikipedia.org/wiki/Thundering_herd_problem

Если по каким-то причинам требуется равномерность, то существует опция reuseport
у директивы listen.

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru