GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuántos núcleos puede manejar el kernel de Linux?

Al menos 2048 en la práctica. Como ejemplo concreto, SGI vende su sistema UV, que puede usar 256 zócalos (2048 núcleos) y 16 TB de memoria compartida, todo funcionando bajo un solo núcleo. Sé que hay al menos algunos sistemas que se han vendido en esta configuración.

Según SGI:

Altix UV ejecuta Linux completamente sin modificaciones, incluidas las distribuciones estándar de Novell y Red Hat.


esto es lo que dice Launchpad sobre Ubuntu, así que supongo que se aplica a otros:

1.Intel x86:
Maximum CPUs: 32 (including logical CPUs)
Maximum memory: 64GB
Maximum filesize: 8TB
Maximum filesystem size (ext3) 16TB
Maximum per-process virtual address space: 4GB

2.AMD64/EM64T:
Maximum CPUs: 64
Maximum memory: 128GB
Maximum filesize: 8TB
Maximum filesystem size (ext3): 16TB
Maximum per-process virtual address space: N/A

These are standard max limitations whereas Linux cluster systems can scale up to 1024 CPU's.

Eso es 32 o 64 CPU para x86 y x86_64 respectivamente.

Redhat dice lo mismo, pero en una tabla amigable para la administración. Redhat EL6 puede hacer 32 para x86, o 128 o 4096 núcleos de CPU para x86_64.


El kernel de Linux x86_64 puede manejar un máximo de 4096 subprocesos de procesador en una sola imagen del sistema. Esto significa que con Hyper Threading habilitado, la cantidad máxima de núcleos de procesador es 2048. Sí, hay computadoras con más de 2048 núcleos de procesador; pero estos se ejecutan como clústeres donde cooperan varios kernels de Linux, conectados con una interconexión de alta velocidad, generalmente una estructura Infiniband.

desde el kernel 3.13 más actual, en ~/arch/x86/Kconfig :

config NR_CPUS

    ---help---
      This allows you to specify the maximum number of CPUs which this
      kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum
      supported value is 4096, otherwise the maximum value is 512.  The
      minimum value which makes sense is 2.

      This is purely to save memory - each supported CPU adds
      approximately eight kilobytes to the kernel image.

Actualización:en los núcleos más nuevos, esto es específico de la arquitectura; por ejemplo, en 4.15 x86_64 le permite establecer NR_CPUS en 8192 en las circunstancias adecuadas, mientras que el brazo de 32 bits se detiene en 32.


Linux
  1. Linux:¿cómo recargar correctamente un módulo del kernel?

  2. ¿Cómo puedo vincular un archivo en Linux?

  3. ¿De cuántos grupos Unix puede ser miembro un usuario?

  4. ¿Cómo puede un kernel de Linux ser tan pequeño?

  5. ¿Cómo verifico si KPTI está habilitado en Linux?

Cómo el kernel de Linux maneja las interrupciones

Cómo cargar o descargar un módulo del kernel de Linux

Cómo verificar la versión del kernel en Linux

Cómo construir el kernel de Linux desde cero

¿Cómo puedo reanudar un trabajo detenido en Linux?

¿Cómo puedo buscar un nombre de usuario por id en Linux?