Defention
vmstat (virtual memory statistics) is a computer system monitoring tool that collects and displays summary information about operating system memory, processes, interrupts, paging and block I/O. Users of vmstat can specify a sampling interval which permits observing system activity in near-real time.
The vmstat tool is available on most UNIX and Unix-like operating systems, such as FreeBSD, Linux or Solaris. The syntax and output of vmstat often differs slightly between different operating systems.
Example
How to collect VMSTAT logs into a file
To generate one week of Virtual Memory stats spaced out at ten second intervals (less the last one) is 60,479 10 second intervals
Explanation of the Fields
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 (/s).
so: Amount of memory swapped to disk (/s).
IO
bi: Blocks received from a block device (blocks/s).
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
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.
wa: Time spent waiting for IO.
vmstat (virtual memory statistics) is a computer system monitoring tool that collects and displays summary information about operating system memory, processes, interrupts, paging and block I/O. Users of vmstat can specify a sampling interval which permits observing system activity in near-real time.
The vmstat tool is available on most UNIX and Unix-like operating systems, such as FreeBSD, Linux or Solaris. The syntax and output of vmstat often differs slightly between different operating systems.
Example
Code:
#> vmstat 2 6
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 2536 21496 185684 1353000 0 0 0 14 1 2 0 0 100 0
0 0 2536 21496 185684 1353000 0 0 0 28 1030 145 0 0 100 0
0 0 2536 21496 185684 1353000 0 0 0 0 1026 132 0 0 100 0
0 0 2536 21520 185684 1353000 0 0 0 0 1033 186 1 0 99 0
0 0 2536 21520 185684 1353000 0 0 0 0 1024 141 0 0 100 0
0 0 2536 21584 185684 1353000 0 0 0 0 1025 131 0 0 100 0
#>
To generate one week of Virtual Memory stats spaced out at ten second intervals (less the last one) is 60,479 10 second intervals
Code:
nohup vmstat 10 604879 > myvmstatfile.dat &
Explanation of the Fields
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 (/s).
so: Amount of memory swapped to disk (/s).
IO
bi: Blocks received from a block device (blocks/s).
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
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.
wa: Time spent waiting for IO.