GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie viele Kerne kann der Linux-Kernel verarbeiten?

In der Praxis mindestens 2048. Als konkretes Beispiel verkauft SGI sein UV-System, das 256 Sockel (2.048 Kerne) und 16 TB gemeinsamen Speicher verwenden kann, die alle unter einem einzigen Kernel laufen. Ich weiß, dass es mindestens ein paar Systeme gibt, die in dieser Konfiguration verkauft wurden.

Laut SGI:

Altix UV läuft unter vollständig unverändertem Linux, einschließlich Standard-Distributionen von Novell und Red Hat.


Folgendes hat Launchpad über Ubuntu zu sagen, also schätze ich, dass es auch auf andere zutrifft:

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.

Das sind 32 bzw. 64 CPUs für x86 bzw. x86_64.

Redhat sagt dasselbe, aber in einer managementfreundlichen Tabelle. Redhat EL6 kann 32 für x86 oder 128 oder 4096 CPU-Kerne für x86_64 ausführen.


Der x86_64-Linux-Kernel kann maximal 4096 Prozessor-Threads in einem einzigen Systemabbild verarbeiten. Das bedeutet, dass bei aktiviertem Hyper-Threading die maximale Anzahl an Prozessorkernen 2048 beträgt. Ja, es gibt Computer mit mehr als 2048 Prozessorkernen; aber diese laufen als Cluster, in denen mehrere Linux-Kernel zusammenarbeiten, verbunden mit einer Hochgeschwindigkeitsverbindung, typischerweise einem Infiniband-Fabric.

vom aktuellsten Kernel 3.13, in ~/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.

Update:Bei neueren Kerneln ist dies architekturspezifisch - zum Beispiel auf 4.15 x86_64 können Sie NR_CPUS unter den richtigen Umständen auf 8192 setzen, während 32-Bit-Arm bei 32 stoppt.


Linux
  1. Linux-Kernel-Module, ohne die wir nicht leben können

  2. So überprüfen Sie die Kernel-Version unter Linux

  3. Können Sie Xcode unter Linux ausführen?

  4. Wie vielen Unix-Gruppen kann ein Benutzer angehören?

  5. Wie kann man unter Linux feststellen, wie viele Kerne der Maschine aktiv sind?

Wie der Linux-Kernel mit Interrupts umgeht

So laden oder entladen Sie ein Linux-Kernel-Modul

So überprüfen Sie die Kernel-Version in Linux

Umgang mit einer Linux-Kernel-Panik

So aktualisieren Sie den Kernel auf dem Linux-Desktop

So erstellen Sie einen Linux-Kernel von Grund auf neu