How to interpret vmstat output

vmstat is a wonderful tool, whose output is a bit cryptic for the faint of the heart.

Image Hosted by

r: Processes actually running, waiting for some attention from the CPU
b: Uninterruptble sleeping processes (This I am yet to discover what does it mean)

swpd: Virtual memory usage (swap areas are listed in /proc/swaps)
free: Idle memory
buff: Memory used as buffers, like before/after IO operations, I guess
cache: Memory used as cache.

si: Memory swapped in from the disk
so: Memory swapped to the disk

bi: Blocks received from block device (like a hard disk)
bo: Blocks sent to a block device

in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.

us: Time spent running non-kernel code. (user time, including nice time)
sy: Time spent running kernel code. (system time - network, IO interrupts, etc)
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, shown as zero.

You should get used to monitor this data, to see how is your system going during peak usage time.

Popular posts from this blog

How to crack Windows Terminal Services 3 month trial

Caveats about Linux connection tracking and high traffic servers

How to install VirtualBox on Scaleway's x86_64 servers