Auto detect the number of CPU's and set worker_processes

Gena Makhomed gmm at csdoc.com
Mon Sep 17 12:46:38 UTC 2012


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

-- 
Best regards,
  Gena



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