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

VovansystemS vovansystems на gmail.com
Чт Май 26 18:48:11 UTC 2016


Добрый вечер,

подскажите пожалуйста, в каких случаях нужно включать multi_accept on
и как именно он работает?

документацию читал http://nginx.org/r/multi_accept/ru
из того, что мне удалось нагуглить, ничто не проясняет ситуацию для меня:

http://mailman.nginx.org/pipermail/nginx-ru/2009-October/028973.html :
При "multi_accept on" nginx пытается accept()нуть все соединения при
получении сообщения о новых соединениях

http://mailman.nginx.org/pipermail/nginx-ru/2015-May/056041.html :
С multi_accept не пересекается никак - в зависимости от workload'а
и желаемых результатов может иметь или не иметь смысл включать
multi_accept.  Проблема всё та же: multi_accept позволяет принять
сразу несколько соединений за одну итерацию event loop'а, но ценой
одного лишнего вызова accept().  Есть небольшой положительный
эффект - при использовании reuseport из-за multi_accept'а не будут
возникать перекосы в распределении соединений между рабочими
процессами при microbenchmark'ах.

http://mailman.nginx.org/pipermail/nginx-ru/2014-June/054012.html :
По умолчанию nginx старается работать так, чтобы "пробуждалось"
минимальное количество рабочих процессов - это позволяет экономить
затраты на переключение контекстов и "лишние" пробуждения
процессов.  При реальной работе - в результате используется
столько процессов, сколько на самом деле нужно для обработки той
нагрузки, которая есть.
Если хочется получить более ровное распределение в тестах - то
имеет смысл:
- accept_mutex выключить;
- multi_accept, если вдруг включён, выключить;
- убедиться, что тесты не используют постоянные соединения и/или
  количество устанавливаемых соединений так или иначе велико.

Я не понимаю что мы выигрываем от принятия сразу нескольких
соединений за одну итерацию event loop'а.

Валентин, может быть Вы сможете проиллюстрировать ситуацию со
включенным и отключенным multi_accept на примере с бомжами и мусорными
баками?
https://habrahabr.ru/post/188114/#comment_6549442


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