Auto detect the number of CPU's and set worker_processes

Gena Makhomed gmm at csdoc.com
Mon Sep 17 18:58:35 UTC 2012


On 17.09.2012 20:13, Igor Sysoev wrote:

>> если надо точно определить количество именно физических ядер,
>> для CPU Intel или AMD - это легко можно сделать. для Linux тоже.

> Насколько я понимаю, cpuid возвращает данные о cores/hyper-threads для одного
> физического процессора, на котором эта cpuid выполняется. А как узнать число
> физических процесоров ?

я вот попробовал собрать http://svn.open-mpi.org/svn/hwloc/trunk
- эта утилита смогла через OS API верно узнать топологию на всех
машинах, где я ее проверял. даже внутри Linux-контейнера OpenVZ.

так что этот ^^^ метод будет работать при использовании любого типа
процессоров (не только х86) на любом из 8 типов поддерживаемых OS:
Linux, Solaris, AIX, Darwin / OS X, FreeBSD, OSF/1, HP-UX, Windows

поддерживается даже Debian GNU/kFreeBSD, which does not support
topology information, and hwloc thus uses an x86-only CPUID-based
backend (which could be used for other OSes too).

"x86-only CPUID-based backend" - это, я так понимаю, topology-x86.c
и этим способом тоже можно узнать количество физических ядер машины.
(это я не проверял, у меня сейчас нет под рукой Debian GNU/kFreeBSD)

-- 
Best regards,
  Gena



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