Come utilizzare il comando vmstat su Linux

Prompt del terminale su un desktop Linux

Fatmawati Achmad Zaenuri/Shutterstock.com



Il tuo computer Linux o macOS utilizza la memoria virtuale. Scopri come sta influenzando l'utilizzo da parte del tuo sistema di memoria fisica, CPU e risorse del disco rigido.

Che cos'è la memoria virtuale?

Il computer è dotato di una quantità limitata di memoria fisica chiamata memoria ad accesso casuale (RAM). Questa RAM deve essere gestita dal kernel e condivisa tra il sistema operativo e qualsiasi applicazione sia in esecuzione. Se queste richieste combinate richiedono più memoria di quella installata fisicamente nel computer, cosa può fare il kernel?





Linux e Unix-like i sistemi operativi come macOS possono utilizzare lo spazio sul disco rigido per aiutarli a gestire le richieste di memoria. Un'area riservata dello spazio su disco rigido chiamata spazio di scambio può essere utilizzata come se fosse un'estensione della RAM. Questa è la memoria virtuale.

Il kernel Linux può scrivere il contenuto di un blocco di memoria nello spazio di swap e liberare quella regione di RAM per l'utilizzo da parte di un altro processo. La memoria scambiata, chiamata anche paginata, può essere recuperata dallo spazio di scambio e ripristinata nella RAM quando è necessario.



Naturalmente, la velocità di accesso per la memoria di paging è inferiore a quella della memoria contenuta nella RAM. E questo non è l'unico compromesso. Sebbene la memoria virtuale fornisca a Linux un modo per gestire le sue richieste di memoria, l'utilizzo della memoria virtuale aumenta il carico in altre parti del computer.

Annuncio pubblicitario

Il tuo disco rigido deve eseguire più letture e scritture. Il kernel, e quindi la CPU, deve fare più lavoro mentre scambia la memoria fuori, la scambia dentro e fa girare tutte le piastre per soddisfare le esigenze di memoria dei diversi processi.

Linux fornisce un modo per monitorare tutta questa attività sotto forma di |_+_| comando, che riporta su statistiche sulla memoria virtuale .



Il comando vmstat

Se digiti |_+_| come comando senza parametri, ti mostrerà un insieme di valori. Questi valori sono i medie per ciascuna delle statistiche dall'ultimo riavvio del computer. Queste cifre non sono un'istantanea dei valori in questo momento.

vmstat

Viene visualizzata una breve tabella di valori.

Sono presenti colonne intitolate Processi, Memoria, Scambio, I/O, Sistema e CPU. L'ultima colonna (colonna più a destra) contiene i dati relativi alla CPU.

Di seguito è riportato un elenco degli elementi di dati in ciascuna colonna.

Procedi

  • R : il numero di processi eseguibili. Si tratta di processi che sono stati avviati e sono in esecuzione o sono in attesa del successivo burst temporale di cicli della CPU.
  • B : il numero di processi in stato di sospensione ininterrotta. Il processo non sta dormendo, sta eseguendo una chiamata di sistema di blocco e non può essere interrotto finché non ha completato la sua azione corrente. In genere il processo è un driver di dispositivo in attesa che alcune risorse vengano liberate. Eventuali interruzioni in coda per quel processo vengono gestite quando il processo riprende la sua normale attività.

Memoria

  • swpd : la quantità di memoria virtuale utilizzata. In altre parole, quanta memoria è stata scambiata.,
  • libero : la quantità di memoria inattiva (attualmente non utilizzata).
  • in forma : la quantità di memoria utilizzata come buffer.
  • cache : la quantità di memoria utilizzata come cache.

Scambio

  • : quantità di memoria virtuale scambiata in dallo spazio di scambio.
  • così : quantità di memoria virtuale scambiata fuori per scambiare spazio.

IO

  • con un : Blocchi ricevuti da un dispositivo a blocchi. Il numero di blocchi di dati utilizzati per scambiare la memoria virtuale nella RAM.
  • bo : Blocchi inviati a un dispositivo a blocchi. Il numero di blocchi di dati utilizzati per scambiare la memoria virtuale dalla RAM e nello spazio di scambio.

Sistema

  • in : Il numero di interruzioni al secondo, compreso l'orologio.
  • cs : il numero di cambi di contesto al secondo. Un cambio di contesto avviene quando il kernel passa dall'elaborazione in modalità di sistema all'elaborazione in modalità utente.

processore

Questi valori sono tutte le percentuali del tempo totale della CPU.

  • noi : tempo impiegato per l'esecuzione di codice non kernel. Cioè, quanto tempo viene speso nell'elaborazione del tempo dell'utente e nell'elaborazione del tempo piacevole.
  • il suo : tempo impiegato per eseguire il codice del kernel.
  • ID : Tempo trascorso inattivo.
  • wa : Tempo trascorso in attesa di input o output.
  • sto : Tempo rubato da una macchina virtuale. Questo è il tempo che una macchina virtuale deve attendere che l'hypervisor termini la manutenzione di altre macchine virtuali prima di poter tornare e occuparsi di questa macchina virtuale.

Utilizzo di un intervallo di tempo

Possiamo avere |_+_| fornire aggiornamenti regolari a queste cifre utilizzando un |_+_| valore. Il |_+_| il valore è fornito in secondi. Per avere le statistiche aggiornate ogni cinque secondi, utilizzeremmo il seguente comando:

vmstat

Annuncio pubblicitario

Ogni cinque secondi |_+_| aggiungerà un'altra riga di dati alla tabella. Dovrai premere Ctrl + C per fermarlo.

Utilizzo di un valore di conteggio

Utilizzo di un |_+_| . troppo basso valore metterà a dura prova il tuo sistema. Se hai bisogno di aggiornamenti rapidi per provare a diagnosticare un problema, si consiglia di utilizzare un |_+_| valore così come un |_+_| valore.

Il |_+_| valore dice |_+_| quanti aggiornamenti eseguire prima che esca e torni al prompt dei comandi. Se non fornisci un |_+_| valore, |_+_| verrà eseguito finché non viene interrotto da Ctrl+C.

Avere |_+_| fornire un aggiornamento ogni cinque secondi, ma solo per quattro aggiornamenti, utilizzare il seguente comando:

vmstat

Dopo quattro aggiornamenti |_+_| si ferma spontaneamente.

Modifica delle unità

Puoi scegliere di visualizzare la memoria e le statistiche di swap in kilobyte o megabyte usando |_+_| (carattere unitario) opzione. Questo deve essere seguito da uno di |_+_| , |_+_| , |_+_| o |_+_|. Questi rappresentano:

  • a : 1000 byte
  • A : 1024 byte
  • m : 1000000 byte
  • m : 1048576 byte
Annuncio pubblicitario

Per avere le statistiche aggiornate ogni 10 secondi con la memoria e le statistiche di swap visualizzate in megabyte, utilizzare il seguente comando:

delay

La memoria e le statistiche di swap sono ora mostrate in megabyte. Notare che |_+_| L'opzione non influisce sulle statistiche del blocco I/O. Questi sono sempre visualizzati in blocchi.

Memoria attiva e inattiva

Se usi |_+_| (active) le colonne buff e cache memory vengono sostituite dalle colonne inact e active. Come suggerirebbero, questi mostrano la quantità di memoria inattiva e attiva.

Per vedere queste due colonne invece delle colonne buff e cache, includi |_+_| opzione, come mostrato:

delay

Le colonne inattive e attive sono influenzato dall'opzione -S (carattere unitario).

forchette

Il |_+_| L'interruttore mostra il numero di fork che si sono verificati dall'avvio del computer.

Annuncio pubblicitario

In altre parole, mostra il numero di attività che sono state avviate (e, per la maggior parte, chiuse di nuovo) dall'avvio del sistema. Ogni processo avviato dalla riga di comando aumenterebbe questa cifra. Ogni volta che un'attività o un processo genera o clona una nuova attività, questa cifra aumenterà.

vmstat

Il display delle forche non si aggiorna.

Visualizzazione delle informazioni sulla lastra

Il kernel ha la propria gestione della memoria di cui preoccuparsi così come la gestione della memoria per il sistema operativo e tutte le applicazioni.

Come puoi immaginare, il kernel sta allocando e deallocando la memoria più e più volte per i molti diversi tipi di oggetti dati che deve gestire. Per renderlo il più efficiente possibile, utilizza un sistema chiamato lastre. Questa è una forma di memorizzazione nella cache.

La memoria allocata, utilizzata e non più necessaria per un tipo specifico di oggetto dati del kernel può essere riutilizzata per un altro oggetto dati dello stesso tipo senza che la memoria venga deallocata e riallocata. Pensa alle lastre come segmenti di RAM pre-allocati, realizzati su misura, per le esigenze del kernel.

Per vedere le statistiche delle lastre utilizzare il |_+_| (lastre) opzione. Dovrai utilizzare |_+_| e ti verrà richiesta la password. Poiché l'output può essere piuttosto lungo, lo stiamo reindirizzando a |_+_|.

delay

L'output ha cinque colonne. Questi sono:

  • cache : nome della cache.
  • nessuno : il numero di oggetti attualmente attivi in ​​questa cache.
  • totale : il numero totale di oggetti disponibili in questa cache.
  • dimensione : La dimensione di ogni oggetto nella cache.
  • pagine : Il numero totale di pagine di memoria che hanno (almeno) un oggetto attualmente associato a questa cache.

Premi |_+_| partire |_+_|.

Visualizzazione dei contatori degli eventi e delle statistiche della memoria

Per visualizzare una pagina di contatori di eventi e statistiche di memoria, utilizzare il |_+_| (statistiche) opzione. Nota che è una s minuscola.

count

Annuncio pubblicitario

Sebbene le statistiche riportate siano in gran parte le stesse delle informazioni che costituiscono il valore predefinito |_+_| output, alcuni di essi sono suddivisi in modo più dettagliato.

Ad esempio, l'output predefinito combina il tempo CPU dell'utente piacevole e non piacevole nella colonna us. Il display -s (stats) elenca queste statistiche separatamente.

output da vmstat -s nella finestra di un terminale

Visualizzazione delle statistiche del disco

È possibile ottenere un elenco simile di statistiche del disco utilizzando |_+_| (disco) opzione.

delay

Per ogni disco vengono visualizzate tre colonne, ovvero Letture, Scritture e I/O.

IO è la colonna più a destra. Si noti che la colonna sec in IO è misurata in secondi, ma le statistiche basate sul tempo nelle colonne di lettura e scrittura sono misurate in millisecondi.

Questo è il significato delle colonne:

legge

  • totale : Il conteggio totale delle letture del disco.
  • unito : Il conteggio totale delle letture raggruppate.
  • settori : Il conteggio totale dei settori che sono stati letti.
  • SM : conteggio totale del tempo in millisecondi utilizzato per leggere i dati dal disco.

scrive

  • totale : il conteggio totale delle scritture su disco.
  • unito : Il conteggio totale delle scritture raggruppate.
  • settori : Il conteggio totale dei settori scritti.
  • SM = Conteggio totale del tempo in millisecondi utilizzato per la scrittura dei dati sul disco.

IO

  • male: Numero di letture o scritture su disco correnti.
  • secondo: Tempo impiegato in secondi per qualsiasi lettura o scrittura in corso.

Visualizzazione delle statistiche del disco di riepilogo

Per visualizzare una rapida visualizzazione delle statistiche di riepilogo per l'attività del disco, utilizzare |_+_| (somma del disco). Notare la D maiuscola.

count

Annuncio pubblicitario

Il numero di dischi potrebbe sembrare anormalmente alto. Il computer utilizzato per la ricerca di questo articolo esegue Ubuntu. Con Ubuntu, ogni volta che installi un'applicazione da uno Snap, un |_+_| viene creato uno pseudo-filesystem che è collegato a un dispositivo /dev/loop.

Fastidiosamente queste voci di dispositivo vengono conteggiate come dispositivi del disco rigido da molti dei comandi e delle utilità di Linux.

Visualizzazione delle statistiche sulle partizioni

Per visualizzare le statistiche relative a una partizione specifica, utilizzare |_+_| (partizione) e fornire l'identificatore di partizione come parametro della riga di comando.

Qui esamineremo la partizione |_+_|. La cifra uno indica che questa è la prima partizione sul dispositivo |_+_|, che è il disco rigido principale per questo computer.

vmstat

Le informazioni restituite mostrano il conteggio totale delle letture e scritture su disco da e verso quella partizione e il numero di settori inclusi nelle azioni di lettura e scrittura su disco.

Una sbirciatina sotto il cofano

È sempre bene sapere come sollevare il cofano e vedere cosa succede sotto. A volte cercherai di risolvere un problema, a volte sarà disinteressato perché vuoi sapere come funziona il tuo computer.

|_+_| può fornirti un sacco di informazioni utili. Ora sai come accedervi e cosa significa. E avvisato è salvato: quando avrai bisogno di rimboccarti le maniche e fare un po' di diagnostica, saprai di avere |_+_| dalla tua parte.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti