Come controllare i dettagli del processore e della CPU su Linux – Command Examples
Processor/Cpu details
I dettagli sul processore di cui parleremo includono, numero di core, disponibilità di hyper threading,architettura, dimensione della cache ecc.
Trovare questi dettagli sulla cpu sul tuo sistema può essere un po ‘ difficile perché il modo in cui i diversi comandi li controllano.
I comandi che useremo includono lscpu, /proc/cpuinfo e lstopo (hwloc).,
Questi comandi mostrano informazioni dettagliate sui core della cpu/unità di elaborazione.
Gli esempi seguenti spiegherebbero come interpretare l’output di questi comandi.
1. Fornitore e modello del processore
Per trovare il nome del fornitore e del modello del processore, cercare il file /proc/cpuinfo con il comando grep.
$ cat /proc/cpuinfo | grep vendor | uniqvendor_id : GenuineIntel
È un processore Intel. Avanti trovare il nome del modello che può essere utilizzato per cercare le specifiche esatte on-line sul sito web di Intel.
$ cat /proc/cpuinfo | grep "model name" | uniqmodel name : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
È un processore “Core 2 Quad Q8400”.
2., Architettura
I comandi lscpu riportano l’architettura.
$ lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little Endian.....
L’architettura è x86_64 che è a 64 bit.
3. Frequenza
La frequenza / velocità del processore è riportata sia da lscpu che da/proc / cpuinfo.
$ lscpu | grep -i mhzCPU MHz: 1998.000
$ cat /proc/cpuinfo | grep -i mhz | uniqcpu MHz : 1998.000
The frequency reported might be lower than the actual frequency specified for the processor because most modern processors operate at lower frequencies to save power. Under load condition they would switch to higher frequency.
Il cambiamento di frequenza può essere visto monitorando l’output di/proc / cpuinfo usando watch.,
$ watch -n 0.1 "cat /proc/cpuinfo | grep -i mhz"
Esegui il comando precedente in un terminale e mentre è in esecuzione, avvia alcune attività intensive della cpu in parallelo e la frequenza aumenterebbe.
Every 0.1s: cat /proc/cpuinfo | grep -i mhz Sun Jun 29 15:28:38 2014cpu MHz : 2664.000cpu MHz : 2664.000cpu MHz : 2664.000cpu MHz : 2664.000
4. Numero di core
Ogni core del processore è una cpu o un’unità di elaborazione indipendente. Più core consentono al processore di eseguire più istruzioni del programma in parallelo, aumentando così la velocità di elaborazione.
Il comando lscpu indica i “core per socket”.
Quindi in questo caso il numero di core sul processore è 4.,
Il file/proc / cpuinfo indica anche il numero di core, ma può essere un po ‘ complicato e confuso.
Semplicemente contando il numero di processori può dare numeri sbagliati.
$ cat /proc/cpuinfo | grep "processor"
In caso di processori hyper threaded, il numero di processori che il sistema operativo vede è il doppio del numero di core.
Tuttavia/proc / cpuinfo ha un campo chiamato “core id” che è un id univoco per ogni core in un singolo processore., Il conteggio dell’id core darebbe una chiara indicazione del numero di core effettivi sul processore
$ cat /proc/cpuinfo | grep -i "core id"core id : 0core id : 2core id : 1core id : 3
Processori multipli
Raro, ma nel caso in cui ci si trovi su un sistema che ha più processori fisici (sì, significa 2 o più processori montati sulla scheda madre), i risultati di /proc/cpuinfo sarebbero diversi. In caso di più processori, l ‘ “id fisico” indicherebbe più valori.
$ cat /proc/cpuinfo | grep -i "physical id" | uniqphysical id : 0
Se ci sono più di 1 ID fisici, allora ci sono più processori fisici sul sistema., E devi contare i core su ciascun processore separatamente.
5. Hyper threading
Hyper threading è una tecnologia Intel che consente ai singoli core di eseguire come 2 unità di elaborazione logica. Questo, in un certo senso aumenta la potenza di elaborazione di ciascun core in modo limitato.
Per verificare se il processore ha hyper-threading, 2 valori diversi devono essere confrontati. Il primo è il numero di core effettivi e il secondo è il numero di unità di elaborazione logiche.
Se il numero di core è uguale al numero di unità di elaborazione come visto dal sistema operativo, quindi NESSUN hyper threading., Altrimenti se il numero di unità di elaborazione è maggiore/doppio del numero di core, allora SÌ hyper threading.
number of processing units = number of cores number of processing units = number of cores * 2
Prendete questo esempio di un Core 2 Quad Q8400 processore
Numero di processori, come mostrato da /proc/cpuinfo 4
$ cat /proc/cpuinfo | grep processorprocessor : 0processor : 1processor : 2processor : 3
Numero di “cpu core” = 4 come “fratelli” = 4 e unico “core” id = 4
Pertanto il numero totale di unità di elaborazione = numero effettivo di core. Quindi non c”è hyper threading su questo processore, e lo stesso può essere confermato dalle specifiche del processore sul sito web di Intel.,
Processore hyper-threaded
In caso di hyper threading presente l’output di /proc/cpuinfo o lscpu sarebbe diverso.
Nota i “Thread(s) per core: 2” che indicano che ci sono 2 thread per core, con un totale di 4 core. Quindi il numero di unità di elaborazione viste dal sistema operativo è 8.
Ora diamo un’occhiata all’output di /proc/cpuinfo.
I “core cpu” = 4 e i fratelli = 8, il che significa che ci sono 4 core e 2 hyperthreads per core. Numero di processori come mostrato da / proc / cpuinfo sarebbe anche 8.,
The HTT flag in dmidecode output and ht flag in /proc/cpuinfo flags might not correctly report hyper threading.
Per il processore Core2Quad Q8400, sia dmidecode che/proc / cpuinfo mostrano il flag hyperthreading abilitato, nonostante l’hyper threading non sia disponibile sul processore.
Hwloc/lstopo
Hwloc (Portable hardware locality) è una piccola utility che riporta la struttura del processore in un diagramma visivo pulito. Il diagramma mostra il numero di core, hyperthreads e la dimensione della cache. Un singolo diagramma dice tutto.,575b2e2d”>
Il diagramma precedente mostra chiaramente –
Totale di Cache L2 – 4096 KB – 4MB
Totale Core – 4
unità di Elaborazione per core – 1
Hyper-thread del processore
Per un hyperthreaded processore, il hwloc uscita diagramma potrebbe apparire come questo
Il diagramma indica
Totale di Cache L3 – 8 MB
Totale Core – 4
unità di Elaborazione per Core – 2
Conclusione
Per saperne di più sui comandi per il controllo della CPU informazioni su Linux controllare questo post:
9 Comandi per Controllare le Informazioni della CPU su Linux