2.5.3. vmstat

For a more concise understanding of system performance, try vmstat. With vmstat, it is possible to get an overview of process, memory, swap, I/O, system, and CPU activity in one line of numbers:
 procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 5276 315000 130744 380184 1 1 2 24 14 50 1 1 47 0 
The first line divides the fields in six categories, including process, memory, swap, I/O, system, and CPU related statistics. The second line further identifies the contents of each field, making it easy to quickly scan data for specific statistics.
The process-related fields are:
  • r -- The number of runnable processes waiting for access to the CPU
  • b -- The number of processes in an uninterruptible sleep state
The memory-related fields are:
  • swpd -- The amount of virtual memory used
  • free -- The amount of free memory
  • buff -- The amount of memory used for buffers
  • cache -- The amount of memory used as page cache
The swap-related fields are:
  • si -- The amount of memory swapped in from disk
  • so -- The amount of memory swapped out to disk
The I/O-related fields are:
  • bi -- Blocks sent to a block device
  • bo -- Blocks received from a block device
The system-related fields are:
  • in -- The number of interrupts per second
  • cs -- The number of context switches per second
The CPU-related fields are:
  • us -- The percentage of the time the CPU ran user-level code
  • sy -- The percentage of the time the CPU ran system-level code
  • id -- The percentage of the time the CPU was idle
  • wa -- I/O wait
When vmstat is run without any options, only one line is displayed. This line contains averages, calculated from the time the system was last booted.
However, most system administrators do not rely on the data in this line, as the time over which it was collected varies. Instead, most administrators take advantage of vmstat's ability to repetitively display resource utilization data at set intervals. For example, the command vmstat 1 displays one new line of utilization data every second, while the command vmstat 1 10 displays one new line per second, but only for the next ten seconds.
In the hands of an experienced administrator, vmstat can be used to quickly determine resource utilization and performance issues. But to gain more insight into those issues, a different kind of tool is required -- a tool capable of more in-depth data collection and analysis.