Linux vmstat command

Updated: 11/06/2021 by Computer Hope
vmstat command

On Unix-like operating systems, the vmstat command reports virtual memory statistics and is used to help identify performance bottlenecks.

Description

vmstat reports information about processes, memory, paging, block IO, traps, disks and cpu activity.

The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length delay. The process and memory reports are instantaneous in either case.

Syntax

vmstat [options] [delay [count]]

Options

delay The delay between updates in seconds. If no delay is specified, only one report is printed with the average values since boot.
count Number of updates. In absence of count, when delay is defined, default is infinite.
-a, --active Display active and inactive memory, given a 2.5.41 kernel or newer.
-f, --forks The -f switch displays the number of forks since boot, which includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat.
-m, --slabs Displays the contents of /proc/slabinfo.
-n, --one-header Display the header only once rather than periodically.
-s, --stats Displays a table of various event counters and memory statistics. This display does not repeat.
-d, --disk Report disk statistics (2.5.70 or above required).
-D, --disk-sum Report some summary statistics about disk activity.
-p, --partition device Detailed statistics about partition (kernel 2.5.70 or above required).
-S, --unit character Switches outputs between 1000 (k), 1024 (K), 1000000 (m), or 1048576 (M) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields.
-V, --version Display version information and exit.
-h, --help Display help and exit.

Field description for VM mode

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 (per second).
so Amount of memory swapped to disk (per second).

IO:

bi Blocks received from a block device (blocks per second).
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: (values expressed in percentages of 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. Before Linux 2.5.41, this includes IO-wait time.
wa Time spent waiting for IO. Before Linux 2.5.41, included in idle.
st Time stolen from a virtual machine. Before Linux 2.6.11, unknown.

Field description for disk mode

Reads:

total Total reads completed successfully
merged grouped reads (resulting in one I/O)
sectors Sectors read successfully
ms milliseconds spent reading

Writes:

total Total writes completed successfully
merged grouped writes (resulting in one I/O)
sectors Sectors written successfully
ms milliseconds spent writing

IO:

cur I/O in progress
s seconds spent for I/O

Field description for disk partition mode

reads Total number of reads issued to this partition
read sectors Total read sectors for partition
writes Total number of writes issued to this partition
requested writes Total number of write requests made for partition

Field description for slab mode

cache Cache name
num Number of currently active objects
total Total number of available objects
size Size of each object
pages Number of pages with at least one active object

Notes

vmstat does not require special permissions.

Linux vmstat does not count itself as a running process.

All linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes.

vmstat lets you choose units: (k, 1000 bytes; K, 1024 bytes; m, 1000000 bytes; M, 1048576 bytes). Default is K in the default mode.

vmstat uses slabinfo 1.1.

Files

/proc/meminfo
/proc/stat
/proc/*/stat

Examples

vmstat

Displays statistics about system resource usage. Output resembles the following:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0   9336 128468 238072 342704    0    0     2    11   20  104  6 32 62  0

free — Display the amount of free and used memory.
iostat — Report CPU and I/O statistics for devices and partitions.
ps — Report the status of a process or processes.
sar — Display system activity information under Solaris.
top — Display a sortable, continually-updated list of processes.