Controllare la CPU in Linux: nproc, lscpu e info su RAM, disco e sistema operativo

Ambiente di testFamiglia RHELAlmaLinux 9.8account rootVerificato il 2026-10-29
Comandi per info · impostazioni di sistemanproclscpufreedflsblkuname

In Linux controlli il numero di CPU con una riga di nproc, e con lscpu vedi se quel numero conta socket, core o thread. Confrontando nproc, lscpu e /proc/cpuinfo su un server AlmaLinux 9, i tre comandi hanno mostrato lo stesso numero di CPU logiche con nomi diversi, come CPU(s) e processor. Anche RAM, disco e versione del sistema operativo sono stati controllati sullo stesso server con free, df, lsblk e uname.

Il modello della CPU, il numero di core, le dimensioni di memoria e disco e la versione del kernel negli output qui sotto sono valori di esempio. Cosa mostra ogni comando è riassunto prima in una tabella.

ComandoCosa mostra
nprocNumero di CPU utilizzabili (core logici)
lscpuModello CPU, socket, core, thread
free -hRAM totale, usata e libera
df -hUso del disco per file system
lsblkStruttura di dischi e partizioni
cat /etc/os-releaseNome e versione della distribuzione
uname -rVersione del kernel

1️⃣ Controllare la CPU in Linux: nproc e lscpu

CPU(s) in lscpu è il numero di CPU logiche usate dal sistema operativo, mentre il numero di core fisici si legge a parte nella riga Core(s) per socket. CPU(s) si calcola come socket × core per socket × thread per core.

Se ti serve solo il numero di CPU logiche, basta una riga di nproc.

nproc
4

Secondo il manuale di nproc, questo valore è il numero di unità di elaborazione disponibili per il processo corrente, quindi negli ambienti che limitano l'uso della CPU può risultare inferiore al numero di processori online.

Da dove viene questo 4 si vede all'inizio dell'output di lscpu.

lscpu | head -n 15
Architecture:                            x86_64
CPU op-mode(s):                          32-bit, 64-bit
Address sizes:                           46 bits physical, 48 bits virtual
Byte Order:                              Little Endian
CPU(s):                                  4
On-line CPU(s) list:                     0-3
Vendor ID:                               GenuineIntel
BIOS Vendor ID:                          Intel(R) Corporation
Model name:                              Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
BIOS Model name:                         Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
CPU family:                              6
Model:                                   85
Thread(s) per core:                      2
Core(s) per socket:                      2
Socket(s):                               1

Moltiplicando Socket(s) 1, Core(s) per socket 2 e Thread(s) per core 2 si ottiene il 4 di CPU(s). Lo 0-3 in On-line CPU(s) list indica i numeri di CPU logica assegnati dal sistema operativo.

Anche la vCPU nel listino prezzi di AWS EC2 è questa unità di CPU logica. Secondo la documentazione ufficiale, EC2 conta un thread di un core della CPU come una vCPU. Un'istanza con 2 core e 2 thread per core ha 4 vCPU, la stessa struttura dell'output di lscpu qui sopra.

L'opzione -e mostra in una tabella a quale core appartiene ciascuna delle quattro CPU logiche.

lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
  0    0      0    0 0:0:0:0          yes
  1    0      0    1 1:1:1:0          yes
  2    0      0    0 0:0:0:0          yes
  3    0      0    1 1:1:1:0          yes

Le CPU 0 e 2 condividono il CORE 0, e le CPU 1 e 3 condividono il CORE 1. Questa struttura, con due CPU logiche su un core, è l'hyper-threading (SMT). Nel diagramma qui sotto puoi premere i pulsanti dei comandi per confrontare con quali nomi ciascuno dei tre comandi mostra questa struttura.

🧭 Come nasce CPU(s) 4
Diagramma esplicativo
🔍 Comando
$ nproclscpucat /proc/cpuinfo
Socket 0Socket(s): 1physical id : 0
Core 0Core(s) per socket: 2core id : 0
CPU 0processor : 0
CPU 2processor : 2
Thread(s) per core: 2cpu cores : 2
Core 1Core(s) per socket: 2core id : 1
CPU 1processor : 1
CPU 3processor : 3
Thread(s) per core: 2cpu cores : 2
nproc → 4CPU(s): 4 = 1 × 2 × 2processor 0~3 · siblings : 4
nproc conta le CPU logiche disponibili per il processo corrente e mostra 4. Non le divide in socket e core.
lscpu mostra la stessa struttura divisa in Socket(s) 1, Core(s) per socket 2 e Thread(s) per core 2, e il prodotto dei tre, 4, è CPU(s).
/proc/cpuinfo mostra quattro blocchi numerando ogni CPU logica con processor, e indica il socket come physical id e il core come core id. siblings 4 è il numero di CPU logiche nello stesso socket, cpu cores 2 il numero di core fisici.

2️⃣ Info sulla CPU in Linux: /proc/cpuinfo

L'origine dei numeri che lscpu riassume è il file /proc/cpuinfo. Il kernel scrive un blocco per ogni CPU logica, quindi su un server con CPU(s) 4 lo stesso blocco si ripete quattro volte di seguito.

Il comando cat mostra l'intero file con tutti e quattro i blocchi, mentre tagliandolo con head come qui sotto compare solo il primo blocco.

head -n 27 /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
stepping	: 4
microcode	: 0x2007006
cpu MHz		: 2394.374
cache size	: 28160 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
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 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc 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 pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_stale_data retbleed gds bhi spectre_v2_user its
bogomips	: 4788.74
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

Questi sono i dieci campi che guarderai più spesso.

  • 🔢 processor
  • ↳ Numero di CPU logica (parte da 0)
  • 🏷️ model name
  • ↳ Nome del modello di CPU
  • 🧩 physical id
  • ↳ Numero del socket a cui appartiene questa CPU
  • 👥 siblings
  • ↳ Numero di CPU logiche nello stesso socket (il doppio di cpu cores con l'hyper-threading)
  • 🧱 cpu cores
  • ↳ Numero di core fisici nello stesso socket
  • 🆔 core id
  • ↳ Numero del core a cui appartiene questa CPU logica
  • ⏱️ cpu MHz
  • ↳ Frequenza di clock attuale (MHz)
  • 🗄️ cache size
  • ↳ Dimensione della cache (stesso valore di L3 cache in lscpu)
  • 🚩 flags
  • ↳ Funzioni e set di istruzioni supportati dalla CPU (ht, avx2, aes ecc.)
  • 📐 address sizes
  • ↳ Numero di bit degli indirizzi fisici e virtuali

Contando le righe processor ottieni il numero di CPU, e confrontando siblings con cpu cores vedi se l'hyper-threading è attivo.

grep -c processor /proc/cpuinfo
4
grep -E 'siblings|cpu cores' /proc/cpuinfo | sort -u
cpu cores	: 2
siblings	: 4

Ci sono 4 righe processor, siblings è 4 e cpu cores è 2, quindi ogni core esegue due thread. Lo stesso è stato confermato anche con il valore che il kernel scrive in /sys.

cat /sys/devices/system/cpu/smt/active
1

Secondo la documentazione del kernel, 1 significa che l'SMT è attivo e le CPU sorelle sono online. Se è disattivato, compare 0.

Se ti serve solo il nome del modello di CPU, raccogli le righe model name.

grep 'model name' /proc/cpuinfo | uniq -c
      4 model name	: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz

Il 4 iniziale indica che la stessa riga è comparsa quattro volte, quindi in una riga vedi il nome del modello e anche il numero di CPU logiche.

3️⃣ Controllare la RAM in Linux: free e /proc/meminfo

La dimensione della RAM si controlla con il comando free. Con l'opzione -h i valori compaiono in unità Gi e Mi.

free -h
               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       4.1Gi       775Mi       112Mi       2.8Gi       3.3Gi
Swap:          2.0Gi       640Mi       1.4Gi

La memoria libera si legge nella colonna available. Anche se la colonna free è piccola, Linux riempie la memoria inutilizzata con la cache dei file (buff/cache) e la libera appena un programma ne ha bisogno.

Come nell'output qui sopra, la colonna free può mostrare 775Mi mentre available è 3.3Gi. Secondo il manuale di free, available è una stima della memoria disponibile per avviare nuovi programmi senza swap.

Per i calcoli negli script l'opzione giusta è -m. Mostra numeri interi in MiB.

free -m
               total        used        free      shared  buff/cache   available
Mem:            7867        4219         775         112        2873        3400
Swap:           2047         640        1407

L'origine che free legge è /proc/meminfo. Le prime cinque righe corrispondono a total, free, available e buff/cache di free, e l'unità è kB.

head -n 5 /proc/meminfo
MemTotal:        8055808 kB
MemFree:          793600 kB
MemAvailable:    3481600 kB
Buffers:              32 kB
Cached:          2856960 kB

Dividendo MemTotal 8055808 kB per 1024 si ottiene lo stesso valore di 7867 in free -m.

4️⃣ Controllare lo spazio su disco in Linux: df e lsblk

Comando df mostra dimensione e uso dei file system montati, quindi non va bene per dischi non montati o per vedere la struttura delle partizioni. In quel caso usa lsblk.

df -h -x squashfs
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G  154M  1.5G  10% /run
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/nvme0n1p4   79G   10G   69G  13% /
/dev/nvme0n1p3  960M  269M  692M  28% /boot
/dev/nvme0n1p2  200M  7.7M  193M   4% /boot/efi
tmpfs           787M  8.0K  787M   1% /run/user/0

-x squashfs è l'opzione che toglie dall'elenco i file system loop che i pacchetti snap montano in sola lettura. Il file system root (/) usa 10G su 79G, cioè il 13%, e devtmpfs e tmpfs sono file system creati in memoria, quindi si escludono dal calcolo dello spazio su disco.

Per vedere anche il tipo di file system aggiungi -T; se indichi un percorso, compare solo la riga del file system a cui appartiene quel percorso.

df -hT /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/nvme0n1p4 xfs    79G   10G   69G  13% /

La root era xfs. Come sono divisi disco e partizioni lo vedi con lsblk. Con -e 7 spariscono i dispositivi loop come snap e restano solo i dischi reali.

lsblk -e 7
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0    80G  0 disk
├─nvme0n1p1 259:1    0     1M  0 part
├─nvme0n1p2 259:2    0   200M  0 part /boot/efi
├─nvme0n1p3 259:3    0     1G  0 part /boot
└─nvme0n1p4 259:4    0  78.8G  0 part /

Un disco, nvme0n1, è diviso in quattro partizioni, e di queste nvme0n1p4 è montata sulla root e corrisponde alla riga da 79G di df.

5️⃣ Controllare versione del sistema operativo e kernel in Linux: os-release e uname

Dopo aver letto i numeri di CPU, memoria e disco, controlla anche su quale distribuzione e kernel gira il server. Nome della distribuzione, versione e data di fine supporto sono tutti in un unico file, /etc/os-release.

cat /etc/os-release
NAME="AlmaLinux"
VERSION="9.8 (Olive Jaguar)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.8 (Olive Jaguar)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.8"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.8"
SUPPORT_END=2032-06-01

La riga PRETTY_NAME è il nome leggibile, e VERSION_ID è il numero di versione che gli script confrontano. Con la riga SUPPORT_END è stata controllata anche la data di fine supporto.

Nei sistemi basati su RHEL, anche /etc/redhat-release mostra la stessa versione in una riga.

cat /etc/redhat-release
AlmaLinux release 9.8 (Olive Jaguar)

Versione del kernel: uname -r la mostra in una riga.

uname -r
5.14.0-687.10.1.el9_8.x86_64
uname -a
Linux server 5.14.0-687.10.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 2 10:15:42 EDT 2026 x86_64 x86_64 x86_64 GNU/Linux

Con -a compaiono su una riga nome del kernel, nome host, versione del kernel, data di build e architettura. Tra questi, x86_64 è l'architettura della CPU, lo stesso valore della riga Architecture di lscpu.

🔲 Simulatore per controllare la CPU in Linux

Nel simulatore qui sotto puoi digitare tu stesso nproc, lscpu, free, df, lsblk e uname e vedere l'output. I valori sono gli stessi valori di esempio del testo.

Simulatore per controllare la CPU in LinuxAlmaLinux 9.8
[root@server work]#
Con i tasti ↑↓ richiami i comandi digitati prima.

🔢 FAQ & contenuti consigliati

Sì, possono. Secondo il manuale di nproc, nproc mostra il numero di unità di elaborazione disponibili per il processo corrente, quindi negli ambienti che limitano le CPU usabili da un processo è inferiore al numero di processori online. Il totale dei processori installati si controlla con nproc [--all]. Sul server di prova i due valori erano uguali.

La colonna free è la memoria vuota, non assegnata a nulla. Secondo il manuale di free, available è una stima della memoria disponibile per avviare nuovi programmi senza swap. Si calcola sommando la page cache liberabile e la memoria slab recuperabile, quindi per valutare la memoria libera guarda available.

Se Thread(s) per core in lscpu è 2, ogni core esegue due CPU logiche. In /proc/cpuinfo siblings è il doppio di cpu cores, e il valore del file /sys/devices/system/cpu/smt/active è 1. Sullo stesso server tutti e tre indicavano che era attivo.

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 8   +   9   =