vmstat - Understanding the Field Descriptions
vmstat is a useful Linux application that displays the loading of a Linux server in real time with regular updates. However, vmstat's column titles are cryptic, so this page lists the descriptions of the column titles and augments those descriptions with our own observations and experiences.
vmstat Field Descriptions
Procs
r: The number of processes waiting for run time.
b: The number of processes in uninterruptible sleep.
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.
wa: Time spent waiting for IO.
Analysis
Sustained high swap rates (si and so) are usually bad. The system will start spending all of its time swapping, and make no progress on any actual work.
You will also see the number of runnable (r and b) processes increase. If the situation gets bad enough and free memory gets too low, the Out-of-memory (oom) logic will start killing random processes. At this point, either reducing the number of processes that normally run or adding additional RAM are about the only options.
If you enjoyed this article, we invite you to learn more about how you can become a high achieving computer professional.

