Introduzione

La CPU (unità centrale di elaborazione), spesso chiamata semplicemente processore, è uno dei componenti più importanti della macchina. Esegue tutti i tipi di operazioni di elaborazione dei dati ed è considerato il cervello del computer.

Esistono vari motivi per cui potresti dover sapere esattamente quale CPU hai nel tuo computer. Forse stai caricando un modulo kernel o eseguendo il debug di un problema relativo all'hardware. Qualunque sia la ragione, su Linux, è abbastanza facile determinare il tipo di processore e la velocità dalla riga di comando.

Ottenere informazioni sulla CPU in Linux

Il modo più semplice per determinare quale tipo di CPU hai è visualizzando il contenuto del file virtuale /proc/cpuinfo. L'identificazione del tipo di processore tramite il file proc/cpuinfo non richiede l'installazione di programmi aggiuntivi. Funzionerà indipendentemente dalla distribuzione Linux che stai utilizzando.

Apri il tuo terminale e usa less o cat per visualizzare il contenuto di /proc/cpuinfo:

less /proc/cpuinfo

Il comando stamperà ogni CPU logica con un numero identificativo. Ad esempio, se si dispone di un processore a 8 core, verrà visualizzato un elenco di tutti i core che iniziano da 0 a 7. Di seguito è riportato un esempio dell'output:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel Xeon Processor (Skylake, IBRS)
stepping        : 4
microcode       : 0x1
cpu MHz         : 2100.000
cache size      : 16384 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat md_clear
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit
bogomips        : 4200.00
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

/proc/cpuinfo (END)

Di seguito è una spiegazione delle linee più interessanti:

  • processor : un numero identificativo univoco di ciascun processore, a partire da 0.
  • model name: il nome completo del processore, incluso il marchio del processore. Una volta che conosci il tipo esatto di CPU che stai avendo, puoi controllare la documentazione del prodotto sulle specifiche del tuo processore.
  • flags - caratteristiche della CPU. Puoi trovare un elenco di tutte le funzionalità qui.

Se vuoi filtrare l'output puoi usare il comando grep. Ad esempio, per visualizzare solo il nome del processore dovresti usare:

grep -m 1 'model name' /proc/cpuinfo
model name      : Intel Xeon Processor (Skylake, IBRS)

Per stampare il numero di CPU:

grep -c 'model name' /proc/cpuinfo
1

Conoscere il numero di CPU può essere utile quando è necessario compilare software dal sorgente e si desidera sapere quanti processi paralleli possono essere eseguiti contemporaneamente. Un altro modo per trovare il numero di CPU è usare il comando nproc:

nproc
1

Controllare le informazioni sulla CPU con lscpu

lscpu è un'utilità della riga di comando che visualizza informazioni sull'architettura della CPU. lscpu è una parte del pacchetto util-linux che è installato su tutte le distribuzioni Linux.

A un prompt della shell, digitare lscpu:

lscpu

L'output sarà simile al seguente, comprese le informazioni sul numero di CPU, architettura, fornitore, famiglia, modello, velocità, cache, flag, ecc.

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               85
Model name:          Intel Xeon Processor (Skylake, IBRS)
Stepping:            4
CPU MHz:             2100.000
BogoMIPS:            4200.00
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            4096K
L3 cache:            16384K
NUMA node0 CPU(s):   0
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat md_clear

A differenza del contenuto del file /proc/cpuinfo, l'output di lscpu non mostra un elenco di tutte le CPU logiche.

Conclusione

In questa guida, ti abbiamo mostrato come trovare informazioni sulla tua CPU di sistema. Esistono anche altri strumenti che è possibile utilizzare per determinare il nome della CPU e il fornitore come dmidecode, hardinfo e lshw, ma la maggior parte di essi non è installata per impostazione predefinita sui sistemi Linux.