ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

worker_processes


  • To: nginx-ru@xxxxxxxxx
  • Subject: worker_processes
  • From: Gena Makhomed <gmm@xxxxxxxxx>
  • Date: Mon, 01 Aug 2011 21:24:00 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1312223041; bh=wBHNLpNLk0iu8SH/ZVVLc5Wl62crVqWSvD8zO1Pw1fY=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type: Content-Transfer-Encoding; b=HW3yJYHjhHCRr4reuGXcrwl8Bk6CN+CgZyFXHR7Eyoo0E0rmBRXsAXAagbxrzQsQt S6UXRxQL+tMOk1CcD36iAbmZdHeW5OQ69Dyxb65BLP3b/0u7A8HQDGaxa7cWml0SaE hpmEmbYZz31yvuGraMWI6vIKzprh0tOcbpXUJ/J4=

Здравствуйте!

сейчас директива 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@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.