Auto detect the number of CPU's and set worker_processes

Igor Sysoev igor at sysoev.ru
Mon Sep 17 12:59:25 UTC 2012


On Sep 17, 2012, at 16:46 , Gena Makhomed wrote:

> On 17.09.2012 15:19, Валентин Бартенев wrote:
> 
>>> - предлагаю для директивы worker_processes
>>> сделать дополнительный вариант значения: auto
> 
>> Уже много раз обсуждали. Простого и единого способа получить количество
>> физических ядер в любой системе - не существует.
> 
> на 99.9% используемых систем это можно получить.
> (Linux, FreeBSD, MacOS X, NetBSD, OpenBSD, Solaris, AIX)
> 
> а там где нельзя получить - auto может быть равно 1, как и на виндовсе.
> 
> по крайней мере, чтобы получить размер L2 cache line
> - тоже не существует простого и единого способа,
> но тем не менее, nginx это всеравно делает, чтобы настроиться
> на максимальную производительность в зависимости от процессора.
> 
> nginx-1.3.6\src\core\ngx_cpuinfo.c
> /* auto detect the L2 cache line size of modern and widespread CPUs */
> 
> с количеством ядер процессора - ведь полностью аналогичная ситуация.
> 
> P.S.
> 
> http://stackoverflow.com/questions/150355/programmatically-find-the-number-of-cores-on-a-machine

Проблема не столько в интерфейсе, сколько в том, что эти интерфейсы считают
процессором - отдельное ядро или hyper-thread ?


--
Igor Sysoev
http://nginx.com/support.html



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