.\"  This page Copyright (C) 1994 Henry Ware <al172@yfn.ysu.edu>
.\"  Distributed under the GPL, Copyleft 1994.
.TH VMSTAT 8 "27 July 1994 " "Throatwobbler Ginkgo Labs" "Linux Administrator's Manual"
.SH NAME
vmstat \- Report virtual memory statistics
.SH SYNOPSIS
.ft B
.B vmstat
.RB [ "\-a" ]
.RB [ "\-n" ]
.RI [ delay " [ " count ]]
.br
.B vmstat
.RB [ "\-f" ]
.RB [ "\-s" ]
.RB [ "\-m" ]
.br
.B vmstat
.RB [ "\-S unit"]
.br
.B vmstat
.RB [ "\-d"]
.br
.B vmstat
.RB [ "\-p disk partition"]
.br
.B vmstat
.RB [ "\-V" ]
.SH DESCRIPTION
\fBvmstat\fP reports information about processes, memory, paging,
block IO, traps, and cpu activity.

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

.SS Options
The \fB-a\fP switch displays active/inactive memory, given a 2.5.41 kernel or better.
.PP
The \fB-f\fP 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.
.PP
The \fB-m\fP displays slabinfo.
.PP
The \fB-n\fP switch causes the header to be displayed only once rather than periodically.
.PP
The \fB-s\fP switch displays a table of various event counters
and memory statistics. This display does not repeat.
.PP
.I delay
is the delay between updates in seconds.  If no delay is specified,
only one report is printed with the average values since boot.
.PP
.I count
is the number of updates.  If no count is specified and delay is
defined, \fIcount\fP defaults to infinity.
.PP
The \fB-d\fP reports disk statistics (2.5.70 or above required) 
.PP
The \fB-p\fP followed by some partition name for detailed statistics (2.5.70 or above required) 
.PP
The \fB-S\fP followed by k or K or m or M switches outputs between 1000, 1024, 1000000, or 1048576 bytes 
.PP
The \fB-V\fP switch results in displaying version information.
.PP
.SH FIELD DESCRIPTION FOR VM MODE
.SS
.B "Procs"
.nf
r: The number of processes waiting for run time.  
b: The number of processes in uninterruptible sleep.
.fi
.PP
.SS
.B "Memory"
.nf
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)
.fi
.PP
.SS
.B "Swap"
.nf
si: Amount of memory swapped in from disk (/s).
so: Amount of memory swapped to disk (/s).
.fi
.PP
.SS
.B "IO"
.nf
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
.fi
.PP
.SS
.B "System"
.nf
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
.if
.PP
.SS
.B "CPU "
These are percentages of total CPU time.
.nf
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.

.PP
.SH FIELD DESCRIPTION FOR DISK MODE 
.SS
.B "Reads"
.nf
total: Total reads completed successfully 
merged: grouped reads (resulting in one I/O)
sectors: Sectors read successfully
ms: milliseconds spent reading
.fi
.PP
.SS
.B "Writes"
.nf
total: Total writes completed successfully
merged: grouped writes (resulting in one I/O)
sectors: Sectors written successfully
ms: milliseconds spent writing
.fi
.PP
.SS
.B "IO"
.nf
cur: I/O in progress
s: seconds spent for I/O
.fi

.PP
.SH FIELD DESCRIPTION FOR DISK PARTITION MODE
.nf
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

.fi

.PP
.SH FIELD DESCRIPTION FOR SLAB MODE 
.nf
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
totpages: Total number of allocated pages
pslab: Number of pages per slab
.fi

.SH NOTES
.B "vmstat "
does not require special permissions.
.PP
These reports are intended to help identify system bottlenecks.  Linux
.B "vmstat "
does not count itself as a running process.
.PP
All linux blocks are currently 1024 bytes. Old kernels may report
blocks as 512 bytes, 2048 bytes, or 4096 bytes.
.PP
Since procps 3.1.9, vmstat lets you choose units (k, K, m, M) default is K (1024 bytes) in the default mode
.PP
vmstat uses slabinfo 1.1    FIXME
.SH FILES
.ta
.nf
/proc/meminfo
/proc/stat
/proc/*/stat
.fi

.SH "SEE ALSO"
iostat(1), sar(1), mpstat(1), ps(1), top(1), free(1)
.PP
.SH BUGS
Does not tabulate the block io per device or count the number of system calls.
.SH AUTHORS
.nf
Written by Henry Ware <al172@yfn.ysu.edu>. 
Fabian Fr\('ed\('erick <ffrederick@users.sourceforge.net> (diskstat, slab, partitions...)
