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