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