marzo 22, 2019

Cómo saber cuántos procesadores y núcleos tiene una máquina Linux


Cómo saber cuántos procesadores y núcleos tiene una máquina Linux


El método más sencillo para saber el número de procesadores presentes en una máquina Linux es el siguiente:

~$ 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/

No hay comentarios:

¿Cómo poner el conteo de las filas en una consulta en MySql?

 ¿Cómo poner el conteo de las filas en una consulta en MySql? SELECT  @rownum := @rownum + 1 AS contador,  /*Contador*/ t.*  /* nombre d...