Comando Linux Vmstat

Comando Linux Vmstat



In questa guida mostreremo i vari modi di utilizzare il comando “vmstat” in Linux.

Prerequisiti:

Per eseguire i passaggi illustrati in questa guida, sono necessari i seguenti componenti:

Memoria virtuale in Linux

La memoria fisica, chiamata anche RAM, ha una quantità limitata. Il kernel è responsabile della distribuzione di questo spazio a tutti i programmi in esecuzione. Tutti i programmi in esecuzione (incluso il sistema operativo) risiedono nella RAM.







Tuttavia, se la richiesta di memoria è superiore alla memoria disponibile, il sistema si blocca semplicemente (o il programma richiederà più spazio di memoria). Nella maggior parte dei casi, questo è un risultato indesiderato. È qui che entra in gioco la memoria virtuale.



La memoria virtuale si riferisce a uno spazio su disco dedicato sul tuo HDD/SSD che può fungere da memoria aggiuntiva in situazioni terribili. Poiché agisce come spazio RAM (ma non proprio), è considerato “virtuale”. Nei sistemi UNIX/Linux, questi spazi vengono definiti spazi di swap.



Il kernel Linux sposta i blocchi di memoria nello spazio di swap e li recupera nella RAM se necessario.





Le prestazioni della memoria virtuale sono decisamente più lente della memoria fisica ed sono direttamente proporzionali alle prestazioni del dispositivo di archiviazione. Tuttavia, in configurazioni hardware specifiche (utilizzando ad esempio SSD NVMe), le prestazioni potrebbero essere equivalenti alla RAM.

Il comando Vmstat

Il comando 'vmstat' è uno strumento di monitoraggio che riporta varie informazioni sulla memoria virtuale. È disponibile su tutti i sistemi Linux come parte del pacchetto 'sysstat'.



La struttura del comando di “vmstat” è la seguente:

$ vmstat < opzioni > < ritardo > < contare >

Utilizzo di base

Se viene eseguito senza alcun parametro, “vmstat” stampa le informazioni di sistema dall'ultimo avvio:

$ vmstat

L'output è organizzato in sei segmenti:

  • processi : statistiche dei processi attualmente in esecuzione
    • R : Numero di processi attivi
    • B : Numero di processi dormienti
  • memoria : Statistiche sull'utilizzo della memoria
    • swpd : quantità totale di memoria virtuale (spazio di swap)
    • gratuito : Spazio di scambio disponibile
    • in forma : La quantità di spazio di swap utilizzata come memoria buffer temporanea
    • cache : memoria cache totale
  • scambio : Statistiche sullo spazio di swap
    • : Tasso di scambio
    • COSÌ : Tasso di scambio
  • Questo : Statistiche I/O
    • con un : Numero di blocchi ricevuti dai dispositivi a blocchi
    • Essere : Numero di blocchi inviati ai dispositivi a blocchi
  • sistema : Statistiche sulla pianificazione
    • In : Conteggio interruzioni del sistema
    • c.s : Velocità di cambio di contesto
  • processore : Varie statistiche della CPU
    • noi : La CPU impiega tempo su processi non kernel
    • E : La CPU impiega tempo sui processi del kernel
    • id : la CPU trascorre del tempo inattiva
    • Di : la CPU trascorre il tempo in attesa del completamento delle operazioni di I/O
    • st : tempo di CPU utilizzato da una macchina virtuale

Modifica dell'unità di visualizzazione

Per impostazione predefinita, 'vmstat' riporta i valori di memoria in kilobyte. Per cambiare l'unità, utilizzare il pulsante “ -S ' bandiera:

$ vmstat -S < discussione >

Qui, 'vmstat' stampa i valori in megabyte.

Sono disponibili diverse unità di memoria:

  • M : 1048576 byte (2^20 byte)
  • M : 1000000 byte (1000 kilobyte)
  • K : 1024 byte (1 megabyte)
  • K : 1000 byte (1 kilobyte)

Aggiornamento statistico continuo

Per impostazione predefinita, 'vmstat' stampa il rapporto una volta. Tuttavia, possiamo istruire “vmstat” a fornire report continui a un intervallo di tempo specificato (in secondi).

La struttura del comando è la seguente:

$ vmstat < ritardo >

Ad esempio, per ottenere le statistiche aggiornate ogni 2 secondi, il comando è il seguente:

$ vmstat 2

L'output non si interromperà a meno che non venga terminato manualmente utilizzando 'Ctrl + C'.

In alternativa, possiamo specificare 'vmstat' per fornire le statistiche per un numero specifico di volte:

$ vmstat < ritardo > < contare >

Ad esempio, per ottenere le statistiche aggiornate ogni 2 secondi per 5 volte, il comando è simile al seguente:

$ vmstat 2 5

Memoria attiva e inattiva

La memoria attiva si riferisce allo spazio di memoria attualmente utilizzato da un processo. D'altra parte, la memoria inattiva si riferisce allo spazio di memoria assegnato a un processo che non è più in esecuzione.

Usando 'vmstat', possiamo controllare la quantità di memorie attive e inattive utilizzate:

$ vmstat -UN

Qui, le colonne “buff” e “cache” sono sostituite rispettivamente dalle colonne “inact” e “active”.

Memoria e pianificazione

Per ottenere un rapporto più dettagliato su memoria e pianificazione, utilizzare il seguente comando:

$ vmstat -S

Qui:

  • Sezione 1: questa sezione tratta le informazioni di sistema di base come la memoria fisica totale, la memoria attiva/inattiva, la memoria libera/buffer/cache, ecc.
  • Sezione 2: Varie statistiche della CPU
    • Ticchettii della CPU non piacevoli : quante volte i processi ad alta priorità hanno utilizzato la CPU.
    • Bel tick della CPU : il numero di volte in cui i processi con priorità inferiore hanno utilizzato la CPU.
    • La CPU del sistema ticchetta : il numero di volte in cui i processi del kernel hanno utilizzato la CPU.
    • Ticchettii della CPU inattiva : il numero di volte in cui la CPU è rimasta inattiva.
    • IO-attende i tick della CPU : il numero di volte in cui la CPU attende la gestione degli I/O.
    • IRQ : il numero di volte in cui la CPU ha ricevuto le richieste di interruzione.
    • softirq : il numero di volte in cui la CPU ha ricevuto richieste di interruzione software.
    • tick della CPU rubati : il numero di volte in cui le macchine virtuali hanno rubato il tempo della CPU.
  • Sezione 3: Statistiche di impaginazione della memoria
  • Sezione 4: Contatori di eventi

Forcelle dall'avvio

I fork si riferiscono a processi generati da processi esistenti. Per ottenere le statistiche sui conteggi dei fork, esegui il comando seguente:

$ vmstat -F

Statistiche su dischi e partizioni

Il comando 'vmstat' può anche fornire informazioni sull'attività del disco. Per ottenere un breve riepilogo dell'attività del disco, esegui il comando seguente:

$ vmstat -D

Per ottenere un rapporto più dettagliato sull'attività del disco (comprese le statistiche di lettura/scrittura), utilizzare invece il seguente comando:

$ vmstat -D

Qui:

  • Legge
    • totale : conteggio totale delle letture del disco
    • fusi : conteggio totale delle letture del gruppo
    • settori : Numero totale di settori letti
    • SM : quantità totale di tempo per leggere i dati dal disco (in millisecondi)
  • Scrive
    • totale : conteggio totale delle scritture su disco
    • fusi : conteggio totale delle scritture del gruppo
    • settori : Numero totale di settori scritti
    • SM : quantità totale di tempo per scrivere sul disco (in millisecondi)
  • IO
    • Mettere : totale delle letture/scritture del disco corrente
    • sez : quantità di tempo trascorso nelle operazioni di lettura/scrittura in corso (in secondi)

Il comando 'vmstat' può anche generare report per una partizione del disco specifica. Per ottenere il report sulla partizione, utilizzare la seguente struttura di comando:

$ vmstat -P < identificatore_partizione >

Statistiche delle lastre

L'allocazione della lastra è progettata per essere un meccanismo efficiente per l'allocazione della memoria degli oggetti. Rispetto ai meccanismi precedenti, l'allocazione della lastra offre una riduzione della frammentazione della memoria (causata dall'allocazione e dalla deallocazione della memoria).

Per verificare le statistiche della lastra del sistema, utilizzare il seguente comando “vmstat”:

$ sudo vmstat -M

Tieni presente che è necessario il permesso di root per visualizzare le statistiche.

Qui:

  • Cache : nome dei dati memorizzati nella cache
  • nessuno : numero di oggetti attivi nella cache Num
  • Totale : conteggio totale degli oggetti in una particolare cache
  • Misurare : dimensione degli oggetti memorizzati nella cache
  • Pagine : conteggio delle pagine di memoria che contengono gli oggetti memorizzati nella cache

Conclusione

In questa guida, abbiamo mostrato i vari modi di utilizzare il comando 'vmstat'. Oltre alla memoria virtuale, 'vmstat' può anche riportare statistiche del disco, fork, plates e altro.

Sei interessato a conoscere altri strumenti di monitoraggio del sistema? Impara di più riguardo htop , uccisione , p.s , eccetera.

Buon calcolo!