Linux vmstat command
![vmstat command](/cdn/linux/vmstat.gif)
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
Related commands
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.