Esistono diversi modi per ottenere informazioni sul processore sul tuo sistema Linux. Ti mostrerò il mio strumento preferito per questa attività insieme ad alcuni modi aggiuntivi per controllare le CPU in Linux.
Ottieni informazioni sulla CPU con il comando lscpu
Questo è il comando più semplice che mostra le informazioni della CPU in un output semplice e conciso.
Puoi vedere l'architettura del tuo sistema, il numero di processori, le informazioni sul fornitore, le informazioni sulla cache, la velocità del processore ecc.
È anche più facile da ricordare perché è simile al comando ls. Puoi pensarlo come "list cpu".
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
Stepping: 9
CPU MHz: 900.054
CPU max MHz: 3100.0000
CPU min MHz: 400.0000
BogoMIPS: 5424.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
Bene... queste sono le informazioni sul processore per il mio sistema e dovrebbero apparire in qualche modo simili anche per il tuo sistema Linux.
Come puoi vedere, l'informazione più importante è che il mio sistema ha un processore Intel i5-7200U. Posso andare a cercare sul Web questo numero di modello per ottenere maggiori informazioni.
Ma cosa significano gli altri campi nell'output? Quali informazioni hai davvero sul processore qui? Lascia che te lo spieghi. Le informazioni sono troppo tecniche, quindi dovresti avere una conoscenza di base dei termini qui.
spiegazione dell'output del comando lscpu
L'architettura per il mio sistema è a 64 bit. Ciò significa che è un processore a 64 bit.
Gli op-mod della CPU sono a 32 bit e 64 bit, il che significa che può funzionare sia come processore a 32 bit che a 64 bit. In altre parole, puoi installare sia sistemi operativi a 32 bit che a 64 bit.
L'ordine dei byte è Little Endian. Ciò significa che i byte sono disposti secondo l'ordine di Little Endian.
Le prossime 4 righe indicano il numero di processori, CPU/core e thread. Suggerirei di leggere questo articolo per capire un po' i processori. Questa immagine di Intel aiuta anche a visualizzare il significato di socket, CPU, core e thread.
Dobbiamo andare nell'ordine inverso qui. Il mio sistema ha 1 socket qui, il che significa che ha un singolo chip per le CPU.
Quella presa ha 2 core. Significa che il singolo chip ha due CPU fisiche su di esso. Questo ti dice il numero di core reali, ovvero le CPU fisiche effettive.
E come puoi vedere, ogni core ha due thread. I thread sono fondamentalmente CPU logiche. I thread condividono le risorse di esecuzione fisiche del core fisico ma il sistema operativo le vede come core separati. Leggi di più sull'hyper-threading qui.
In breve, il mio sistema ha un chip che contiene due CPU fisiche e ciascuna CPU è divisa in due CPU logiche. E quindi il mio sistema dual core è visto come dotato di 4 CPU dal sistema operativo.
C'è un nodo NUMA, il fornitore è Intel e la famiglia di CPU è 6.
Il numero di modello della CPU è 142 (non rilevante secondo me) e il nome del modello è CPU Intel(R) Core(TM) i5-7200U @ 2.50GHz (informazioni più importanti).
Stepping è un numero utilizzato da Intel per identificare a quale livello di modifica del design è stato creato un microprocessore.
L'attuale velocità di clock della mia CPU è 900.054 MHz mentre la sua capacità massima è 3100 MHz e 400 MHz.
BogoMIPS è "il numero di milioni di volte al secondo che un processore non può fare assolutamente nulla".
La virtualizzazione è VT-x e viene utilizzata per "aiutare ad accelerare le macchine virtuali create in VirtualBox, VMware, Hyper-V e altre app".
Le prossime quattro voci riguardano la cache. Ha L1D (cache di dati) di 32K, L1I (cache di istruzioni) di 32K, cache L2 di 256K e cache L3 di 3072K. Leggi questa pagina wiki per ottenere informazioni rapide sulle cache della CPU.
Il prossimo è il nodo NUMA per ciascuna CPU (sia logiche che fisiche).
L'ultima riga è l'elenco dei flag di funzionalità specifici del produttore. Puoi leggere di più su di loro qui.
Questa immagine riassume le informazioni più importanti sul processore che ottieni dal comando lscpu.
Secondo me, il comando lscpu è più che sufficiente per darti tutte le informazioni di cui hai bisogno.
Altri comandi per controllare le informazioni sulla CPU in Linux
Esistono altri modi per ottenere informazioni sulla CPU nella riga di comando di Linux. Lascia che li mostri uno per uno. Tuttavia, non entrerò in dettaglio per spiegare il loro output.
1. Controlla il contenuto di /proc/cpuinfo
Se sei a conoscenza della struttura delle directory in Linux, sai già che proc è una directory speciale in Linux. In realtà è un filesystem virtuale che contiene informazioni di sistema di runtime come memoria di sistema, dispositivi montati, configurazione hardware ecc.
Se desideri informazioni sulla CPU, puoi leggere il contenuto del file cpuinfo nella directory proc.
Si noti che il file cpuinfo contiene informazioni dettagliate su ciascun core del processore.
Ad esempio, il primo core della mia CPU ha le seguenti informazioni:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
stepping : 9
microcode : 0x8e
cpu MHz : 800.026
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
bogomips : 5424.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Se vuoi solo il numero di core della CPU (inclusi quelli fisici e logici), puoi usare il comando grep con il comando wc.
cat /proc/cpuinfo | grep processor | wc -l
4
2. Usa il comando lshw
lshw sta per 'elenco hardware'. Ovviamente, significa elencare le informazioni sull'hardware.
Poiché il comando lshw fornisce informazioni su tutto l'hardware del tuo sistema, sarà difficile trovare esattamente quello che stai cercando.
Questo è il motivo per cui il comando lshw fornisce un'opzione per restringere la ricerca prevista.
Per mostrare solo le informazioni sul processore, puoi usare il comando lshw nel modo seguente:
sudo lshw -class CPU
Questo mostrerà un output come questo:
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
vendor: Intel Corp.
physical id: 3f
bus info: [email protected]
version: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
serial: To Be Filled By O.E.M.
slot: U3E1
size: 2964MHz
capacity: 3100MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d cpufreq
configuration: cores=2 enabledcores=2 threads=4
3. Usa hwinfo
hwinfo è un altro strumento da riga di comando per ottenere informazioni sull'hardware del tuo sistema Linux.
Probabilmente devi prima installare lo strumento hwinfo. Su Debian e Ubuntu, puoi usare il comando apt per installarlo.
sudo apt install hwinfo
Una volta installato, puoi ottenere i dettagli della CPU in questo modo:
hwinfo --cpu
Vedrai un output simile a questo per ogni core della CPU:
01: None 00.0: 10103 CPU
[Created at cpu.460]
Unique ID: rdCR.j8NaKXDZtZ6
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.142.9 "Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,pdpe1gb,rdtscp,lm,constant_tsc,art,arch_perfmon,pebs,bts,rep_good,nopl,xtopology,nonstop_tsc,cpuid,aperfmperf,tsc_known_freq,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,sdbg,fma,cx16,xtpr,pdcm,pcid,sse4_1,sse4_2,x2apic,movbe,popcnt,tsc_deadline_timer,aes,xsave,avx,f16c,rdrand,lahf_lm,abm,3dnowprefetch,cpuid_fault,epb,invpcid_single,pti,ssbd,ibrs,ibpb,stibp,tpr_shadow,vnmi,flexpriority,ept,vpid,fsgsbase,tsc_adjust,bmi1,avx2,smep,bmi2,erms,invpcid,mpx,rdseed,adx,smap,clflushopt,intel_pt,xsaveopt,xsavec,xgetbv1,xsaves,dtherm,ida,arat,pln,pts,hwp,hwp_notify,hwp_act_window,hwp_epp,flush_l1d
Clock: 3050 MHz
BogoMips: 5424.00
Cache: 3072 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
4. Comando dmidecode
dmidecode è un altro comando per recuperare vari tipi di informazioni hardware del tuo sistema Linux. Puoi controllare l'utilizzo della memoria in Linux con esso. Puoi anche usarlo per ottenere solo le informazioni sul processore.
sudo dmidecode --type processor
Anche questo comando richiede l'accesso sudo. Vedrai un output come questo:
dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Handle 0x003F, DMI type 4, 48 bytes
Processor Information
Socket Designation: U3E1
Type: Central Processor
Family: Core i5
Manufacturer: Intel(R) Corporation
ID: E9 06 08 00 FF FB EB BF
Signature: Type 0, Family 6, Model 142, Stepping 9
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
Voltage: 0.8 V
External Clock: 100 MHz
Max Speed: 2500 MHz
Current Speed: 2400 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: 0x003C
L2 Cache Handle: 0x003D
L3 Cache Handle: 0x003E
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Core Count: 2
Core Enabled: 2
Thread Count: 4
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control
Conclusione
Naturalmente, ci sono molti altri strumenti che forniscono informazioni sull'hardware in Linux. Puoi utilizzarli anche per ottenere informazioni sulla CPU.
Secondo me, lscpu è il comando migliore se non vuoi ricordare nulla. Puoi anche fare affidamento sul file /proc/cpuinfo. Usa questi due e sarai pronto.
Dato che hai imparato a controllare le informazioni sulla CPU, forse ti piacerebbe leggere come controllare le informazioni sul disco anche in Linux.
Spero che questo tutorial ti sia piaciuto. Se hai domande o suggerimenti, lascia un commento qui sotto.