GNU/Linux >> Linux Esercitazione >  >> Linux

Quanti core può gestire il kernel Linux?

Almeno 2048 in pratica. Come esempio concreto, SGI vende il suo sistema UV, che può utilizzare 256 socket (2.048 core) e 16 TB di memoria condivisa, tutti in esecuzione sotto un singolo kernel. So che ci sono almeno alcuni sistemi che sono stati venduti in questa configurazione.

Secondo SGI:

Altix UV esegue Linux completamente non modificato, comprese le distribuzioni standard di Novell e Red Hat.


questo è ciò che Launchpad ha da dire su Ubuntu, quindi immagino che si applichi ad altri:

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.

Ovvero 32 o 64 CPU rispettivamente per x86 e x86_64.

Redhat dice lo stesso, ma in una tabella di facile gestione. Redhat EL6 può eseguire 32 core per x86 o 128 o 4096 CPU per x86_64.


Il kernel Linux x86_64 può gestire un massimo di 4096 thread del processore in una singola immagine di sistema. Ciò significa che con l'hyper threading abilitato, il numero massimo di core del processore è 2048. Sì, ci sono computer con più di 2048 core del processore; ma questi vengono eseguiti come cluster in cui cooperano diversi kernel Linux, connessi con un'interconnessione ad alta velocità, tipicamente un fabric Infiniband.

dal kernel più recente 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.

Aggiornamento:nei kernel più recenti questo è specifico dell'architettura, ad esempio su 4.15 x86_64 consente di impostare NR_CPUS su 8192 nelle giuste circostanze, mentre il braccio a 32 bit si ferma a 32.


Linux
  1. I moduli del kernel Linux di cui non possiamo fare a meno

  2. Come aggiornare il kernel su desktop Linux

  3. Come controllare la versione del kernel su Linux

  4. Linux:come ricaricare correttamente un modulo del kernel?

  5. Puoi eseguire Xcode in Linux?

Come il kernel Linux gestisce gli interrupt

Come caricare o scaricare un modulo del kernel Linux

Come controllare la versione del kernel in Linux

Come gestire un panico del kernel Linux

Come costruire il kernel Linux da zero

Come posso riservare un blocco di memoria dal kernel Linux?