Usando y entendiendo vmstat
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:
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.
procs ———–memory———- —swap– —–io—- -system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 632 205776 113804 1258860 0 0 44 176 339 307 26 4 67 3
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:
bi: Los bloques enviados a un dispositivo de bloques.
bo: 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.
Buenas,
Excelente el artículo , me ha servido bastante. Tirando de google para ampliar información de algunas secciones he visto que tienes puesto en la parte de E/S.
Creo que los tienes cambiados ; bi bloques recibidos pero no envíados y lo mismo para bo bloques envíados pero no recibidos.
Te lo copio de la página man:
IO
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s)
Tenés razón, ahi está corregido! muchas gracias!