Welcome! Log In Create A New Profile

Advanced

worker_processes

Gena Makhomed
August 01, 2011 02:28PM
Здравствуйте!

сейчас директива worker_processes
имеет значение-по-умолчанию равное 1.

при этом - в nginx существует
параметр командной строки -g

# -g — задаёт глобальные директивы конфигурации, например,

nginx -g "pid /var/run/nginx.pid; worker_processes `sysctl -n hw.ncpu`;"

предлагаю:

1. добавить в nginx r/o переменную $sysctl_cpu_cores_physical
в которой будет записано число физических ядер процессора
если это не Linux и не FreeBSD и не какая-то другая система,
где nginx может определить число ядер процессора в run-time,
то как и раньше, эта переменная будет равна fail-safe значению 1
и возможно имеет смысл при старте выводить предупреждение, что
используется дефолтовое fail-safe значение 1, потому что в run-time
не удалось узнать количество ядер. - кого это достанет - или поставят
в конфиге нужное значение вручную, или пришлют патч для своей системы.

2. для директивы worker_processes значением по-умолчанию установить
$sysctl_cpu_cores_physical для всех систем, где nginx может определить
количество ядер процессора, кроме windows,
где worker_processes должно быть равно 1.

это позволит получить nginx "из коробки" более готовый к применению
и автоматически настроенный на "оптимальную производительность" по
количеству worker-процессов. особенно это актуально в случае https
протокола, когда пользователи пытаются проводить какие-то тестирования
и выкладывать в сеть их результаты сравнивая nginx с другими серверами.

http://news.netcraft.com/archives/2011/07/08/july-2011-web-server-survey.html

June 2011 Percent July 2011 Percent Change
nginx 22,668,760 6.55% 23,357,497 6.54% -0.01

вряд ли все из этих 22-23 миллионов пользователей nginx
будут внимательно читать всю документацию, перед тем,
как пытаться его использовать в production.

а кому из них нужна будет "тонкая настройка" и не устроит дефолтовое
значение - всегда смогут в конфиге явно указать необходимое значение.

P.S. возможно также имеет в nginx смысл добавить r/o переменную
$sysctl_cpu_cores - это будет общее количество ядер процессора,
включая и "виртуальные" на системах с процессором intel и т.п.
и $sysctl_cpu_cores_virtual - количество только "виртуальных" ядер.
- возможно кто-то захочет использовать эти переменные для настройки.

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

worker_processes

Gena Makhomed August 01, 2011 02:28PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 113
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready