Un server sta rallentando, ma superiore vmstatIn pochi secondi puoi vedere se i processi sono in attesa sul processore, sul disco o sulla memoria. A patto, ovviamente, di non trarre conclusioni dalla prima riga.
gratuito, iostat e i processi. Questo è l’unico modo per distinguere la vera pressione sulla memoria da una CPU sovraccarica o da un sistema di archiviazione che non risponde correttamente.

vmstat di solito appartiene alla confezione procps procps-ngIniziate prendendo una lettura ogni secondo, con un totale di sei linee:
vmstat 1 6
La prima riga riassume l’attività dall’inizio. Non descrive con precisione la seconda riga appena trascorsa. Per diagnosticare un rallentamento in corso, concentrati sulla lettura delle righe seguenti. L’opzione -w allarga le colonne se i valori diventano difficili da leggere:
vmstat -w 1 6
Tieni aperto anche un secondo terminale. Avvia la lettura, riproduci l’azione lenta e poi annota le colonne che cambiano contemporaneamente. Un singolo picco durante un’operazione di salvataggio o compilazione non ha lo stesso peso di una coda che rimane alta per diversi minuti.
Leggi insieme le colonne r, b e CPU
Nel gruppo prove, Questo valore indica il numero di attività eseguibili in corso o in attesa di tempo di elaborazione. Confronta questo valore con il numero di processori logici:
nproc
tempo di attività
Se rimane ben al di sopra del numero di CPU disponibili e che O sì Se i livelli sono elevati, è probabile che la macchina non abbia abbastanza tempo di elaborazione. noi corrisponde al codice eseguito nello spazio utente, mentre sì misura il lavoro del nucleo. Un valore sì Un valore insolitamente elevato può derivare da un numero elevato di chiamate di sistema, interruzioni o cambiamenti di contesto.
B Ciò include attività bloccate in uno stato di sospensione non interrompibile, spesso in attesa di input o output. Se B cavalcare con wa wa Rappresenta il tempo durante il quale il processore rimane inattivo mentre è in sospeso un’operazione di input/output.
idTempo di inattività della CPU;wa: in attesa di ingresso/uscita;: tempo impiegato dall’hypervisor su una macchina virtuale.
Su un VPS, un st La ripetizione ripetuta può indicare un host fisico sovraccaricato. Su una macchina fisica, questa colonna normalmente rimane a zero. La guida su carico medio sotto Linux Questa lettura è completa, poiché il carico include anche alcune attività bloccate e non si limita a una percentuale della CPU.
Riconoscere la vera pressione della memoria con se e solo se
Le colonne swpd, gratuito, appassionato E nascosto forniscono una visione compatta della memoria. Non sono sufficienti per indicare la saturazione. Linux riutilizza parte della RAM come cache e gratuito In vmstat non sostituisce la colonna disponibile dell’ordine gratuito.
libero -h
swapon --show
swpd Indica la quantità di swap utilizzata. Un valore diverso da zero non dimostra che il sistema stia ancora scambiando pagine. Presta particolare attenzione a questo aspetto. Se E COSÌ sulla base di campioni recenti:
SeCOSÌ: dati spostati dalla RAM allo swap.
Valori ripetuti in Se O COSÌ, un ricordo disponibile Una memoria persistentemente bassa e tempi di risposta degradati costituiscono un forte segnale di pressione sulla memoria. Un’area di swap vecchia e occupata senza attività di swapping corrente non ha lo stesso significato. La guida su RAM libera e disponibile descrive in dettaglio il ruolo della cache, mentre l’articolo sulla scambiare sotto Linux spiega perché non dovresti svuotarlo automaticamente.
Confermare un’attesa del disco con bi, bo e iostat
Nella sezione io, bi E rappresentano i blocchi ricevuti e inviati al secondo. Mostrano l’attività complessiva, ma non il dispositivo responsabile o il suo tempo di risposta. Se B E wa rimanere alto, passare a iostat
iostat -xz 1 5
Guarda in particolare , la coda e %util per ogni disco. Non affidarti a una singola soglia: un SSD NVMe può gestire più operazioni in parallelo, mentre un disco rigido si degrada rapidamente con l’accesso casuale. Confronta i valori con il comportamento abituale del computer e con l’elaborazione corrente.
L’articolo su iostat sotto Linux Spiega come collegare questi contatori al dispositivo corretto. Se i rallentamenti sono accompagnati da errori, controlla anche i messaggi del kernel:
journalctl -k -b -p avviso..avviso
systemctl --non riuscito
Recupera il processo prima di riavviare un servizio
Indica la probabile natura del blocco, non il nome del processo. Quindi, ordina le attività in base alla risorsa sospetta:
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pcpu | head
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pmem | head
htop
In STAT, uno stato D Ciò generalmente corrisponde a un sonno ininterrotto. Può spiegare una colonna B Il PID è elevato, ma non terminarlo immediatamente. Prima di tutto, identifica il servizio, apri i file e consulta i log:
ps -fp PID
systemctl status service-concerned --no-pager
journalctl -u service-concerne -n 100 --no-pager
Un database può consumare molta RAM senza perdite e un processo in uno stato D
La diagnosi diventa utilizzabile quando diverse colonne raccontano la stessa storia:
- CPU satura :
Rrimane elevato rispetto anproc, connoiOsìid; - pressione della memoria :
disponibilestai basso,SeOCOSÌritorno su diversi campioni e la latenza aumenta; - disco in attesa :
BEwaalzarsi, alloraiostatconferma un dispositivo lento; - contesa sulla virtualizzazione :
strimane visibile su una macchina virtuale nonostante un carico interno moderato.
Per cercare un’istanza di OOM killer, utilizzare i log del kernel:
journalctl -k -b | grep -Ei 'memoria insufficiente|oom-killer|processo terminato'
Là pagina del manuale vmstat descrive ogni campo. Quello di iostat Dettagli sulle metriche di archiviazione. Conserva le letture prima e durante il rallentamento: senza un confronto nel tempo, anche un contatore elevato rimane difficile da interpretare.