Cómo saber cuántos procesadores y núcleos tiene una máquina Linux
~$ nproc --all 8
Otra forma de obtener el mismo
resultado, el cual también nos permite obtener información adicional
sobre nuestro procesador es el comando lscpu:
~$ lscpu | grep 'CPU(s)' CPU(s): 8 On-line CPU(s) list: 0-7 NUMA node0 CPU(s): 0-7
O también podemos examinar el fichero cpuinfo del sistema de ficheros /proc:
~$ grep processor /proc/cpuinfo | wc -l 8
Podemos encontrar numerosos detalles adicionales sobre nuestros procesadores en /proc/cpuinfo, entre ellos el modelo de CPU y el número de núcleos o cores que tiene:
~$ cat /proc/cpuinfo | grep "model name" model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz ~$ cat /proc/cpuinfo | grep "cpu cores" cpu cores : 4 cpu cores : 4
Como puedes ver, la máquina del ejemplo tiene 2 procesadores con 4 cores cada uno.
Lectura recomendada:
Diferencias entre CPU física, CPU lógica, Core/Núcleo, Thread/Hilo y Socket
Debido a la tecnología HyperThreading y otras mejoras de los procesadores podemos necesitar diferenciar entre CPUs físicas y lógicas:
# Obtener el número de cpus/cores físicos: ~$ lscpu -p | egrep -v '^#' | wc -l 4
# Obtener el número de cpus lógicas (incluyendo aquellos cores con HT): ~$ lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l 8
El equivalente de los anterior para Mac OS X:
# Obtener el número de cpus/cores físicos: ~$ sysctl -n hw.physicalcpu_max 4
# Obtener el número de cpus lógicas (incluyendo aquellos cores con HT): ~$ sysctl -n hw.logicalcpu_max 8
Otro método portable que funciona en ordenadores antiguos, tanto Linux como Mac OS X, que no tienen disponibles los comandos nproc o lscpu es utilizar el comando getconf:
~$ getconf _NPROCESSORS_ONLN 8
También podemos utilizar herramientas alternativas para obtener información del hardware de nuestra máquina como dmidecode, pero necesitaremos privilegios de root:
~# dmidecode -t 4 | egrep 'Socket Designation|Count' Socket Designation: CPUSocket Core Count: 8 Thread Count: 8
Si
de la información anterior se desprende que tenemos una máquina con
varias CPUs o varios núcleos, querremos también asegurarnos de que el
kernel de Linux que corre en dicha máquina tiene soporte multiprocesador
(SMP, Symmetric MultiProcessing):
~# uname -a Linux sasser 2.6.18-028stab092.1 #1 SMP Wed Jul 20 19:47:12 MSD 2011 i686 GNU/Linux
Fuente: http://www.daniloaz.com/es/como-saber-cuantos-procesadores-y-nucleos-tiene-una-maquina-linux/