Linux / Comando uptime: tempo di attività e carico medio
uptime mostra su una riga l’ora corrente, il tempo trascorso dall’ultimo avvio, il numero di sessioni di accesso e il carico medio negli intervalli di 1, 5 e 15 minuti. È un primo controllo utile per verificare un riavvio e capire se il carico sta aumentando o persiste.
uptime
Il carico medio, o load average, non è la percentuale di utilizzo della CPU (unità centrale di elaborazione). Su Linux include i task in esecuzione o pronti a eseguirsi e quelli in attesa non interrompibile, spesso legata all’input/output (I/O). Interpretatelo insieme alla capacità CPU e allo stato di dischi, memoria e servizi.
Leggere le voci dell’output di uptime
Questo è un esempio illustrativo: orari e valori reali dipendono dal sistema.
14:32:10 up 12 days, 3:41, 2 users, load average: 0.42, 0.51, 0.48
Il manuale ufficiale di uptime di procps-ng documenta questi campi, nello stesso ordine.
| Esempio | Significato | Come interpretarlo |
|---|---|---|
14:32:10 |
Ora corrente del sistema | Dipende dal fuso orario e dalla sincronizzazione dell’orologio. |
up 12 days, 3:41 |
Tempo dall’ultimo avvio | In un container può riferirsi all’host. |
2 users |
Sessioni di accesso registrate | Non equivale al numero di persone distinte. |
0.42, 0.51, 0.48 |
Carichi medi a 1, 5 e 15 minuti | Non sono percentuali normalizzate per il numero di CPU logiche. |
Interpretare ogni informazione
Ora corrente
Il primo valore è l’ora riconosciuta dal sistema. Se non coincide con gli orari dei log, verificate fuso orario e sincronizzazione. Negli ambienti con systemd e i servizi necessari disponibili potete consultare:
timedatectl status
Leggete lo stato del fuso e della sincronizzazione senza modificarli per questo controllo. Nelle installazioni senza timedatectl, usate gli strumenti di data e sincronizzazione previsti dalla distribuzione.
Tempo di attività del sistema
Dopo up compare il tempo trascorso dall’avvio. Se è più breve del previsto, confrontatelo con registri di avvio e attività amministrative: potrebbe esserci stato un aggiornamento programmato, un riavvio inatteso, un problema di alimentazione o un errore del kernel.
uptime -p
uptime -s
-p visualizza la durata in una forma leggibile; -s mostra l’ora di avvio. Le opzioni dipendono dalla versione e dall’implementazione installata: controllate uptime --help, soprattutto sulle distribuzioni meno recenti.
Numero di utenti connessi
Il conteggio si basa sulle sessioni di accesso registrate, non sulle persone. La stessa persona può aprire più sessioni tramite SSH (Secure Shell) o console. Per vedere terminali e orari di accesso, consultate:
w
who
I risultati dipendono dai dati di accesso disponibili nel sistema; sessioni non registrate o registrazioni residue possono rendere il conteggio incompleto o inatteso.
Che cosa significa load average?
Gli intervalli dei tre valori
I numeri corrispondono agli intervalli di 1, 5 e 15 minuti. Sono medie a decadimento esponenziale, con maggior peso agli stati recenti, non semplici medie aritmetiche né il conteggio istantaneo dei task. Il codice del kernel Linux per il calcolo del carico medio descrive questo meccanismo.
- Un valore a 1 minuto maggiore di quelli a 5 e 15 minuti può indicare un aumento recente.
- Un valore a 1 minuto più basso può indicare che un carico precedente si sta riducendo.
- Tre valori simili e alti rispetto al comportamento abituale possono indicare un carico persistente.
Confrontare il carico con le CPU disponibili
Il carico medio non viene diviso per il numero di CPU. Per avere un primo riferimento, controllate le unità di elaborazione disponibili al processo:
nproc
Un carico di 1.00 su un sistema con quattro CPU logiche non ha lo stesso significato che su un sistema con una sola CPU. Se i task richiedono soprattutto calcolo, un carico vicino al numero di CPU può suggerire che la capacità sia molto impegnata. Se sono presenti attese I/O, quel rapporto da solo non consente di stimare l’uso della CPU o identificare il collo di bottiglia.
nproc non è sempre il conteggio di tutte le CPU fisicamente installate: affinità del processo, variabili OpenMP per il parallelismo e, nelle versioni GNU che lo supportano, quote CPU dei cgroup v2 (gruppi di controllo delle risorse del kernel) possono influenzare il risultato. Il codice e l’aiuto ufficiale di nproc di GNU Coreutils distinguono le unità disponibili al processo da quelle installate.
Perché non equivale all’utilizzo della CPU
Il manuale Linux di /proc/loadavg descrive i task eseguibili, nello stato R, e quelli in attesa I/O non interrompibile, nello stato D. Di conseguenza, un disco lento o un’attesa su storage di rete può far crescere il carico anche quando l’utilizzo della CPU è basso.
Per approfondire, eseguite questi strumenti uno alla volta: non incollate il blocco come se fossero tutti comandi istantanei.
top
vmstat 1
iostat -xz 1
free -h
top è interattivo: uscite con q. vmstat 1 e iostat -xz 1 continuano a produrre campioni ogni secondo: interrompete ciascuno con Ctrl+C prima di passare al successivo, oppure usate terminali separati. free -h fornisce un riepilogo della memoria in unità leggibili.
In vmstat osservate coda di esecuzione, task bloccati, attività di swap e campi CPU; in iostat confrontate attività e latenza dei dispositivi con il comportamento abituale. Il primo rapporto di iostat riguarda il periodo dall’avvio, mentre i successivi coprono l’intervallo dal rapporto precedente: lo precisa il manuale ufficiale di iostat del progetto sysstat. Il comando appartiene normalmente al pacchetto sysstat e può non essere installato.
Le opzioni di uptime più utili
Mostrare una durata leggibile
uptime --pretty
-p e --pretty mostrano soltanto la durata in forma leggibile. Evitate di basare gli script sull’analisi di una frase localizzata, il cui formato può variare.
Visualizzare l’ora di avvio
uptime --since
-s e --since mostrano l’avvio nel formato YYYY-MM-DD HH:MM:SS. Il valore è calcolato usando l’ora corrente: se l’orologio è stato modificato in modo rilevante, confrontatelo con i registri di avvio e non trattatelo come una prova indipendente.
Opzioni per container e formato grezzo
Il manuale corrente di procps-ng documenta anche --container, che richiede il tempo di attività del container, e --raw, che esprime ora corrente e durata in secondi.
uptime --container
uptime --raw
Versioni più vecchie o altre implementazioni possono non supportarle. Controllate l’aiuto locale e il comportamento effettivo del runtime e del kernel. L’opzione per la durata del container non garantisce che ogni altro dato di carico visualizzato sia limitato a quel container.
Che cosa controllare quando il carico è alto
Partire dalla tendenza e dalla capacità CPU
- Confrontate i valori a 1, 5 e 15 minuti di uptime per riconoscere una crescita, una riduzione o una persistenza del carico.
- Leggete
nproce verificate anche i limiti CPU effettivi dell’ambiente. - Con
topopscercate i processi che consumano CPU; confrontate il loro comportamento con la lentezza del servizio. - Controllate coda di esecuzione e attese I/O con vmstat e iostat, distinguendo il primo rapporto dai campioni successivi.
- Con free esaminate memoria disponibile e utilizzo dello swap insieme all’attività di swap rilevata da vmstat.
Evitare conclusioni basate su un solo campione
Una breve compressione o un backup può far salire temporaneamente il valore a 1 minuto. Se anche quello a 15 minuti continua a crescere e i tempi di risposta peggiorano, indagate un possibile collo di bottiglia persistente. Definite le soglie in base a capacità CPU, traffico abituale, tipo di lavoro, prestazioni dello storage e latenza del servizio.
Per osservazioni regolari, raccogliete insieme carico, CPU, I/O, memoria e metriche dell’applicazione in un sistema di monitoraggio. Un valore isolato di uptime non sostituisce una serie temporale.
Container e macchine virtuali
In una macchina virtuale, uptime normalmente si riferisce al sistema operativo guest. Un container condivide il kernel con l’host e può mostrarne il tempo di attività, secondo strumenti e configurazione. Verificate l’eventuale supporto di --container, i namespace del runtime e l’origine dei dati raccolti dal monitoraggio.
Non assumete inoltre che il valore di nproc coincida con la capacità concessa al container: controllate richieste, limiti e metriche di throttling dell’orchestratore. Anche l’ambito del carico può essere diverso da quello dei limiti CPU; confrontare grandezze riferite a sistemi diversi può portare a conclusioni errate.
Domande frequenti
Un load average di 1.00 significa CPU al 100%?
No. Il carico include task eseguibili e attese non interrompibili e non è normalizzato per CPU. Misurate separatamente l’utilizzo della CPU con top o mpstat.
Perché il tempo di attività è diminuito all’improvviso?
Nel sistema host è normalmente il risultato di un riavvio. Confrontate journalctl --list-boots, log e registri operativi per distinguere manutenzione, interruzioni di alimentazione o errori del kernel. Nei sistemi senza journal persistente o con conservazione limitata, i vecchi avvii potrebbero non essere disponibili. In un container verificate prima quale durata state leggendo.
Perché il numero di utenti non coincide con le persone collegate?
Una persona può avere più sessioni SSH o console; inoltre i dati di accesso possono essere incompleti o residui. Controllate terminali e orari con w o who.
Come si aggiorna continuamente l’output di uptime?
Con watch potete rieseguire il comando a intervalli regolari:
watch -n 5 uptime
L’esempio aggiorna lo schermo ogni cinque secondi; terminate con Ctrl+C. Per conservare tendenze e generare avvisi, usate un sistema di monitoraggio.
Riepilogo
Uptime è un primo controllo di durata dall’avvio e tendenza del carico. Le medie a 1, 5 e 15 minuti non sono percentuali CPU.
Se il carico è alto, esaminate capacità CPU, utilizzo, code, attese I/O, memoria disponibile e swap. La guida al comando free, in inglese approfondisce la lettura dei dati di memoria.




