Archivio

Posts Tagged ‘vmstat’

vmstat

7 novembre 2009 Nessun commento

Per analizzare le prestazioni di un sistema Unix-like possiamo utilizzare un comando molto utile che ci permette di avere dettagliate informazioni sul nostro sistema, sui processi, sulla memoria, sulla paginazione, sull’I/O: vmstat.

Iniziamo ad analizzare il comando:

vmstat 3 5
procs     memory      —swap– —–io—-     -system– —-cpu—-
r b         swpd free    si    so       bi bo      in cs us sy id wa
1 0        752   156     20 12        44 0       0 58 49 1 3 1

Il comando appena dato esegue 5 rilevazioni ogni 3 secondi.
Sotto procs troviamo :

  • r che indica il numero di processi in attesa del tempo di esecuzione, cioè prossimi all’esecuzione da parte della CPU.
  • b che indica il numero di processi bloccati che sono in attesa di un qualche evento, per esempio delle operzioni di I/O.

Nella colonna memory:

  • swpd indica il quantitativo di memoria virtuale usata (espressa in kB per vederla in MB usare -s m).
  • free rappresenta il numero di kB liberi nel sistema.

E’ interessante osservare che un valore della memoria libera prossima allo zero ed un pesante utilizzo dello spazio swap, nel tempo, indicano che il sistema non sta lavorando correttamente.

Nella colonna Swap troviamo in (kB/s):

  • si rappresenta la quantità di memoria prelevata dalla swap disco.
  • so indica la quantità di memoria swappata sul disco.

Ovviamente un alta attività di questi due parametri, quindi di scrittura e lettura da e sulla swap, sono indicativi di una configurazione della memoria di sistema insufficiente. Un sistema che fa un forte utilizzo della memoria swap molto facilmente tende ad andare in OOM, con conseguente blocco del server.

L’io rappresenta il numero di blocchi inviati ad un device a blocchi (blocchi/s):

  • bi sono i blocchi inviati, quindi scritti su disco.
  • bo riporta i blocchi letti dal disco.

Ovviamente se abbiamo un attività di swap su disco vedremo parecchio movimento anche nella colonna io. Questo in base alla velocità di lettura e scrittura su disco potrebbe creare seri problemi alle prestazioni del nostro server.

Sotto system troviamo:

  • in: Il numero di interrupt al secondo, incluso il clock.
  • cs mostra il numero di cambiamenti di contesto effettuati in un intervallo (cioè il numero di volte in cui il kernel ha scambiato il processo in esecuzione con un altro).

Un valore molto alto di cs indica solitamente un dispositivo hardware configurato male o addirittura malfunzionante.

L’ultima colonna cpu elenca rispettivamente:

  • us: Percentuale di utilizzo CPU da parte di processi in userspace.
  • sy: Percentuale di utilizzo CPU da parte del kernel
  • id: tempo di inattività.
  • wa: Tempo di attesa sull’IO. Ovviamente più è prossimo allo zero e più il sistema tende ad avere prestazioni migliori.