L'X5560 è un singolo chip . Assomiglia a questo:
grep "physical id"
ti sta dicendo che hai UN processore fisico installato.
Se togli il dissipatore di calore dalla parte superiore puoi vedere questo:un singolo dado fisico (a faccia in giù) :
Se potessi rimuovere quel dado e capovolgerlo, sembrerebbe così :
Su quel singolo die fisico ci sono quattro core CPU fisici costruito sul silicio :
grep "cpu cores"
ti sta dicendo che il tuo processore ha quattro core fisici incorporati.
Ogni core è un singolo processore con un'unità a virgola mobile, un numero di unità di esecuzione intere, una coppia di stack di registri e qualche altra magia che consente a ciascun singolo core di eseguire efficacemente due flussi di istruzioni indipendenti (thread) alla volta.
top
ti sta dicendo che tutti i processori e i core del tuo computer, collettivamente, possono eseguire otto flussi di lavoro indipendenti alla volta:ti sta dicendo che il sistema operativo è in grado di pianificare otto thread simultanei per l'esecuzione in un dato momento.
Che cpu stai usando? Quanti thread sono presenti per core fisico?
cat /proc/cpuinfo
mostra il numero di core fisici mentre top
mostra il numero totale di thread presenti.
Penso che la tua CPU abbia 4 core fisici e 2 core logici per core fisico. Quindi è top
mostrando 8.
Inoltre i contenuti di /proc/cpuinfo
è in qualche modo dipendente dall'implementazione. Come nella shell Android con root, il cpuinfo
il file non contiene alcun termine cpu cores
.
Tuttavia in cpuinfo
ogni thread è chiamato processor : X
, Dove X
è il filo n. Quindi l'ultimo thread no deve essere uguale a top/htop
uscita.
Risultato di nproc --all
deve anche essere coerente con top/htop
top
mostra una "CPU" per CPU logica; su x86, è il prodotto del numero di socket nel sistema, per il numero di core fisici per socket, per il numero di thread per core.
Il cpu cores
voce in /proc/cpuinfo
, sempre su x86, mostra il numero di core fisici. Per trovare il numero di core logici, come utilizzato in top
, dovresti guardare siblings
valore invece:
cat /proc/cpuinfo | grep "siblings" | uniq
Questo è descritto in dettaglio nella documentazione del kernel.
lscpu
fornisce informazioni sulle CPU installate che sono più facili da capire rispetto a /proc/cpuinfo
(o meglio, presenta le stesse informazioni in modo più semplice).