Come usare il comando vmstat in Linux

Contenuti

Prompt del terminale su un desktop Linux

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

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 fisicamente installata nel tuo computer, Cosa può fare il kernel??

Sistemi operativi simili a Linux e Unix, come macOS, può utilizzare lo spazio sul disco rigido per aiutare a gestire le richieste di memoria. Un'area riservata di spazio su disco rigido denominata “scambiare spazio” può essere utilizzato come estensione della RAM. Questa è la memoria virtuale.

Il kernel Linux può scrivere il contenuto di un blocco di memoria per scambiare spazio e liberare quella regione di RAM per l'utilizzo da parte di un'altra procedura.. La memoria scambiata, ulteriore chiamata “impaginato”, può essere recuperato dallo spazio di swap e ripristinato nella RAM quando necessario.

Certo, la velocità di accesso alla memoria di paging è più lenta della memoria memorizzata nella RAM. E non è l'unico compenso. Sebbene la memoria virtuale fornisca a Linux un modo per gestire le sue richieste di memoria, l'utilizzo della memoria virtuale aumenta il carico su altre parti del computer.

Il tuo disco rigido deve fare più letture e scritture. El kernel, e così, la CPU, deve fare più lavoro, visto che scambia memoria, scambia la memoria e fa girare tutte le schede per soddisfare le esigenze di memoria dei diversi processi.

Linux ti offre un modo per monitorare tutta questa attività sotto forma di vmstat comando, che riporta su statistiche sulla memoria virtuale.

Il comando vmstat

Se scrivi vmstat come comando senza parametri, ti mostrerà una serie di valori. Questi valori sono medie per ciascuna delle statistiche dall'ultimo riavvio del computer. Queste cifre non sono un'istantanea dei valori “A quest'ora”.

vmstat

Viene visualizzata una piccola tabella di valori.

Ci sono colonne intitolate Procs, Memoria, Scambio, IO, Sistema e CPU. L'ultima colonna (la colonna più a destra) contiene i dati relativi alla CPU.

Prossimo, viene visualizzato 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 della prossima raffica di cicli CPU suddivisi nel tempo.
  • B: Il numero di processi in sospensione ininterrotta. La procedura non è inattiva, stai effettuando una chiamata al sistema di blocco e non puoi essere interrotto finché non hai completato l'azione corrente. Generalmente, la procedura è un driver di dispositivo in attesa che venga rilasciata una risorsa. Eventuali interruzioni in coda per quella procedura vengono gestite quando la procedura riprende la sua normale attività.

Memoria

  • swpd: la quantità di memoria virtuale utilizzata. In altre parole, quanta memoria è stata scambiata.
  • gratuito: la quantità di memoria inattiva (oggi inutilizzato).
  • forte: la quantità di memoria utilizzata come buffer.
  • cache: la quantità di memoria utilizzata come cache.

Scambio

  • e: Quantità di memoria virtuale scambiata Su dallo spazio di scambio.
  • così: Quantità di memoria virtuale scambiata fuori da 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 allo spazio di scambio.

Sistema

  • Su: 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.

UPC

Questi valori sono tutte percentuali del tempo totale della CPU.

  • noi: Tempo speso per l'esecuzione di codice non core. In altre parole, quanto tempo viene impiegato per elaborare il tempo dell'utente e per elaborare il tempo piacevole?.
  • il suo: Tempo impiegato per l'esecuzione del codice del kernel.
  • ID: Tempo di inattività.
  • Washington: Tempo trascorso in attesa di entrata o uscita.
  • Ns: 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 indietro e servire questa macchina virtuale.

Utilizzo di un intervallo di tempo

Possiamo avere vmstat fornire aggiornamenti regolari di queste cifre attraverso a delay valore. il delay Il valore è fornito in secondi. Per avere le statistiche aggiornate ogni cinque secondi, useremmo il seguente comando:

vmstat 5

Ogni cinque secondi vmstat aggiungerà un'altra riga di dati alla tabella. Dovrai premere Ctrl + C per fermare questo.

Utilizzo di un valore di conteggio

Utilizzo di un valore troppo basso delay Il coraggio metterà ulteriore pressione sul tuo sistema. Se hai bisogno di aggiornamenti rapidi per provare a diagnosticare un ostacolo, Si consiglia di utilizzare a count valore così come un delay valore.

il count il valore dice vmstat quanti aggiornamenti fare prima che esca e lo riporti al prompt dei comandi. Se non fornisci un count valore, vmstat funzionerà fino all'arresto tramite Ctrl + C.

Avere vmstat fornire un aggiornamento ogni cinque secondi, ma solo per quattro aggiornamenti, usa il seguente comando:

vmstat 5 4

Dopo quattro aggiornamenti vmstat si ferma da solo.

Cambio di unità

È possibile selezionare la memoria e le statistiche di scambio da visualizzare in kilobyte o megabyte utilizzando il tasto -S opzione (carattere di unità). Questo dovrebbe essere seguito da uno di k , K , m, oh M. Questi rappresentano:

  • K: 1000 byte
  • K: 1024 byte
  • Metro: 1000000 byte
  • METRO: 1048576 byte

In modo che le statistiche siano aggiornate ogni 10 secondi con memoria e statistiche di swap visualizzate in megabyte, usa il seguente comando:

vmstat 10 -S M

Le statistiche di memoria e swap ora vengono visualizzate in megabyte. Nota che il -S L'opzione non influisce sulle statistiche del blocco E / S. Questi sono sempre visualizzati in blocchi.

Memoria attiva e inattiva

Se usi il -a (attivo) le colonne cache e cache vengono sostituite dalle colonne “inattivo” e “attivo”. Come suggeriresti?, questi mostrano la quantità di memoria inattiva e attiva.

Per vedere queste due colonne invece delle colonne di miglioramento e cache, includere il -a opzione, come mostrato:

vmstat 5 -a -S M

Le colonne inattive e attive è così influenzato dall'opzione -S (carattere di unità).

forchette

il -f L'interruttore visualizza il numero di rami che si sono verificati dall'avvio del computer.

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

vmstat -f

Il display della forcella 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 alloca e dealloca memoria più e più volte per i diversi tipi di oggetti dati che deve gestire. Perché questo sia il più efficiente possibile, utilizza un sistema chiamato lastre. Questa è una forma di memorizzazione nella cache.

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

Per visualizzare le statistiche della lastra, utilizzare il -m (lastre) opzione. Dovrai usare sudo, e ti verrà chiesta la password. Come l'uscita può essere piuttosto lunga, lo stiamo canalizzando less.

sudo vmstat -m | meno

L'output ha cinque colonne. Questi sono:

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

premere q permettere less.

Visualizzazione di contatori di eventi e statistiche di memoria

Per visualizzare una pagina di contatori di eventi e statistiche di memoria, Utilizzare il -s (statistiche) opzione. Si noti che è un “S” minuscolo.

vmstat -s

Anche se le statistiche riportate sono in gran parte le stesse delle informazioni che costituiscono il vmstat Uscita, alcuni di essi sono suddivisi in modo più dettagliato.

Come esempio, l'output predefinito combina il tempo della CPU dell'utente piacevole e non piacevole nella colonna “noi”. La schermata -s (statistiche) elenca queste statistiche separatamente.

output di vmstat -s nella finestra del terminale

Visualizzazione delle statistiche del disco

È possibile ottenere un elenco equivalente di statistiche del disco utilizzando -d (discoteca) opzione.

vmstat -d | meno

Per ogni disco, vengono visualizzate tre colonne, queste sono letture, Escrituras e IO.

IO è la colonna di destra. Nota che la colonna dei secondi in IO è misurata in secondi, ma le statistiche sostenute nel tempo nelle colonne di lettura e scrittura sono misurate in millisecondi.

Questo è il significato delle colonne:

Lee

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

scrive

  • totale: Il conteggio totale delle scritture su disco.
  • unito: Il conteggio totale delle scritture in pool.
  • settori: Il conteggio totale dei settori scritti in.
  • SM = Conteggio totale del tempo in millisecondi utilizzato per scrivere i dati su disco.

IO

  • farabutto: 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 dell'attività del disco, Utilizzare il -D (somma del disco) opzione. Alcuni di questi file hanno un'estensione “D” lettera maiuscola

vmstat -D

Il numero di dischi potrebbe apparire anormalmente alto. Il computer utilizzato per la ricerca di questo post esegue Ubuntu. Con Ubuntu, ogni volta che installi un'applicazione da uno Snap, un squashfs Viene creato uno pseudo-filesystem collegato a un dispositivo / sviluppo / ciclo continuo.

È fastidioso che molti dei comandi e delle utilità di Linux contino queste voci di dispositivo come dispositivi del disco rigido.

Visualizzazione delle statistiche sulle partizioni

Per visualizzare le statistiche associate a una partizione specifica, usa el -p (partizione) e fornire l'identificatore di partizione come parametro della riga di comando.

Qui esamineremo la partizione. sda1. La cifra uno indica che questa è la prima partizione sul dispositivo sda, qual è il disco rigido principale di questo computer?.

vmstat -p sda1

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 del disco.

Uno sguardo sotto il cofano

Sempre bene sapere come alzare il cofano e vedere cosa succede sotto. Qualche volta, proverò a riparare un ostacolo, a volte non sarai interessato perché vuoi sapere come funziona il tuo computer.

vmstat può fornirti molte informazioni utili. Ora sai come entrarci e cosa significa. Ed essere avvertito è avvertito: quando hai bisogno di rimboccarti le maniche e fare un po' di diagnosi, saprai cosa hai vmstat da parte vostra.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.