Vmstat es un comando que nos permite obtener un detalle general de los procesos, E/S, uso de memoria/swap, estado del sistema y actividad del CPU. Es esencial para entender que esta pasando en tu sistema, detectar cuellos de botella, etc..

Para usarlo, podemos correrlo sin parámetros, y obtendremos algo similar a esto:

vmstat

La primera línea es simple, se divide en seis categorías: procesos, memoria, swap, E/S, sistema y CPU.
La segunda un detalle abierto de cada categoria superior.

Los campos mostrados en relación a los a procesos son:

r: El número de procesos ejecutables esperando para acceder al CPU.
b: El número de procesos en un estado dormido contínuo.

Los campos relacionados a la memoria son:

swpd: La cantidad de memoria utilizada.
free: La cantidad de memoria libre.
buff: La cantidad de memoria utilizada por las memorias intermedias.
cache: La cantidad de memoria utilizada como caché de páginas.

Los campos relacionados a swap son:

si: La cantidad de memoria intercambiada desde el disco.
so: La cantidad de memoria intercambiada hacia el disco.

Los campos relacionados con E/S son:

bo: Los bloques enviados a un dispositivo de bloques.
bi: Los bloques recibidos desde un dispositivo de bloques.

Los campos relacionados al sistema son:

in: El número de interrupciones por segundo.
cs: El número de cambios de contexto por segundo.

Los campos relacionados al CPU son:

us: El porcentaje de tiempo que el CPU ejecutó código de nivel del usuario.
sy: El porcentaje de tiempo que el CPU ejecutó código de nivel del sistema.
id: El porcentaje de tiempo que el CPU estaba desocupado.
wa: Esperas de E/S.

Si se ejecuta el comando “vmstat” sin opciones, nos muestra una unica línea, que contiene promedios calculados desde la última vez que se arrancó el sistema.

Si ejecutamos “vmstat 1” muestra una nueva línea de utilización de datos cada segundo, mientras que el comando “vmstat 1 10”, muestra una nueva línea por segundo, pero sólo por los próximos 10 segundos.