Linux comes with many tools to enable administrators to evaluate the performance of a system. One of these very useful tools is vmstat. Vmstat is available on most unix distributions and is included by default on many modern Linux distributions. As with most Linux commands, built in help is available via the command man vmstat.
First we will review what the different columns means and then we will review the output that would be consistent with a few common bottlenecks.
Sample vmstat output:
procs ———–memory———- —swap– —–io—- –system– —–cpu——
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 1 5888 140136 167700 1506440 0 0 10 2 0 0 6 2 90 3 0
0 1 5888 147864 167724 1507492 0 0 1164 340 2092 4506 8 3 76 13 0
0 1 5888 147220 167760 1508584 0 0 1240 212 2059 2539 2 1 84 13 0
Procs
r: The number of processes waiting for run time.
b: The number of processes in uninterruptible sleep.
Uninterruptible sleep usually represents processes that are waiting on input to be processed. This could either be because it is waiting for user input or disk i/o operations to complete.
Memory
swpd: the amount of virtual memory used.
free: the amount of idle memory.
buff: the amount of memory used as buffers.
cache: the amount of memory used as cache.
inact: the amount of inactive memory. (-a option)
active: the amount of active memory. (-a option)
Swap
si: Amount of memory swapped in from disk (/s).
so: Amount of memory swapped to disk (/s).
IO
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
sy: Time spent running kernel code. (system time)
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
Pingback: Reading vmstat in linux – Part 2 | HelpMeHost
Pingback: Monitorizar tu servidor con “vmstat” | Ni'palante Ni'patras