Estoy ejecutando el siguiente comando para obtener la cantidad de procesadores / núcleos en Linux:
cat /proc/cpuinfo | grep processor | wc -l
Funciona pero no parece elegante. ¿Cómo sugeriría mejorarlo?
linux
bash
command-line
Miguel
fuente
fuente

Respuestas:
nproces lo que buscas.Más aquí: http://www.cyberciti.biz/faq/linux-get-number-of-cpus-core-command/
fuente
nprocestá en mi máquina virtual ubuntu, pero no en mi máquina basada en RedHat 5.5.nproc --allde todas las unidades de procesamiento instaladas. Sin--all,nprocsolo muestra las Unidades de procesamiento disponibles para el proceso actual. Lea la página del manual para obtener más detalles. MMV.La herramienta más simple viene con glibc y se llama
getconf:fuente
nprocesto, esto funciona (por defecto) en mac os x._NPROCESSORS_ONLN(o cualquier cosa con cpu, proc, etc.) aparece en su salida. Tenía la esperanza de que, dado que es una herramienta posix, funcionaría en Linux / Solaris para no tener que usar la ramificación.Creo que el método que das es el más portátil en Linux. En lugar de desove innecesaria
catywcprocesos, se puede acortar un poco:fuente
Si desea hacer esto para que funcione en Linux y OS X, puede hacer:
fuente
psrinfo -pen su lugarEn los núcleos más nuevos, también podría usar la
/sys/devices/system/cpu/interfaz para obtener un poco más de información:Consulte los documentos oficiales para obtener más información sobre lo que significan todos estos.
fuente
onlinearchivo, más simple que lo que hace nproc)Cuando alguien pregunta "el número de procesadores / núcleos", se solicitan 2 respuestas. El número de "procesadores" sería el número físico instalado en los zócalos de la máquina.
El número de "núcleos" sería núcleos físicos. Los núcleos (virtuales) con hiperproceso no se incluirían (al menos en mi opinión). Como alguien que escribe muchos programas con grupos de subprocesos, realmente necesita saber el recuento de núcleos físicos frente a núcleos / hyperthreads. Dicho esto, puede modificar el siguiente script para obtener las respuestas que necesita.
El resultado en una máquina con 2 procesadores físicos modelo Xeon X5650, cada uno con 6 núcleos físicos que también admiten hyperthreading:
En una máquina con 2 procesadores mdeol Xeon E5472 cada uno con 4 núcleos físicos que no admiten hyperthreading
fuente
El
lscpu(1)comando proporcionado por el proyecto util-linux también puede ser útil:fuente
Esto es para aquellos que desean una forma portátil de contar núcleos de CPU en * bsd, * nix o solaris (no lo he probado en aix y hp-ux, pero debería funcionar). Siempre me ha funcionado.
solaris
grepyegrepno tienen-oopción, por lo quesedse usa en su lugar.fuente
Otro one-liner, sin contar los núcleos hiperprocesados :
fuente
Si necesita un método independiente del sistema operativo, funciona en Windows y Linux. Usa Python
fuente