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