vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat reports information about processes, memory, paging, block IO,
traps, and cpu activity.
The first report produced gives averages since the last reboot. Addi-
tional reports give information on a sampling period of length delay.
The process and memory reports are instantaneous in either case.
The -a switch displays active/inactive memory, given a 2.5.41 kernel or
The -f switch displays the number of forks since boot. This 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.
The -m displays slabinfo.
The -n switch causes the header to be displayed only once rather than
The -s switch displays a table of various event counters and memory
statistics. This display does not repeat.
delay is the delay between updates in seconds. If no delay is speci-
fied, only one report is printed with the average values since boot.
count is the number of updates. If no count is specified and delay is
defined, count defaults to infinity.
The -d reports disk statistics (2.5.70 or above required)
The -w enlarges field width for big memory sizes
The -p followed by some partition name for detailed statistics (2.5.70
or above required)
The -S followed by k or K or m or M switches outputs between 1000,
1024, 1000000, or 1048576 bytes
The -V switch results in displaying version information.
active: the amount of active memory. (-a option)
si: Amount of memory swapped in from disk (/s).
so: Amount of memory swapped to disk (/s).
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
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.
FIELD DESCRIPTION FOR DISK MODE
total: Total reads completed successfully
merged: grouped reads (resulting in one I/O)
sectors: Sectors read successfully
ms: milliseconds spent reading
total: Total writes completed successfully
merged: grouped writes (resulting in one I/O)
sectors: Sectors written successfully
ms: milliseconds spent writing
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
vmstat does not require special permissions.
These reports are intended to help identify system bottlenecks. 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.
Since procps 3.1.9, vmstat lets you choose units (k, K, m, M) default
is K (1024 bytes) in the default mode
vmstat uses slabinfo 1.1 FIXME
iostat(1), sar(1), mpstat(1), ps(1), top(1), free(1)
Does not tabulate the block io per device or count the number of system
Written by Henry Ware <firstname.lastname@example.org>.
Fabian Frederick <email@example.com> (diskstat, slab, partitions...)
Throatwobbler Ginkgo Labs 27 July 1994 VMSTAT(8)