|
|
vmstat(C) is a useful tool for monitoring system performance but is not as comprehensive as sar. vmstat gives an immediate picture of how a system is functioning. It enables you to see if system resources are being used within their capacity.
vmstat's default output concentrates on four types of system activity -- process, paging/swapping, system and CPU activity. If a timing interval is specified then vmstat produces indefinite output until you press <Del>. Consider the following example for the command vmstat 5:
PROCS PAGING SYSTEM CPU r b w frs dmd sw cch fil pft frp pos pif pis rso rsi sy cs us su idIn this case vmstat displays data at regular intervals. Each display representing an average of the activity over the preceding five second interval.1 126 0 64000 0 0 0 0 0 0 0 0 0 0 0 59 34 0 3 97 0 127 0 64000 8 0 0 0 0 0 0 0 0 0 0 47 22 0 2 98 1 126 0 64000 0 0 0 0 0 0 0 0 0 0 0 45 16 0 2 98 0 127 0 64000 0 0 0 0 0 0 0 0 0 0 0 86 23 1 5 94 0 127 0 64000 0 0 0 0 0 0 0 0 0 0 0 24 12 0 1 99 1 129 0 64000 10 0 15 0 55 0 0 0 0 0 0 1369 43 19 42 39 0 130 0 64000 0 0 0 0 0 0 0 0 0 0 0 277 36 2 6 92 0 130 0 64000 0 0 0 0 0 0 0 0 0 0 0 78 26 0 1 99 0 130 0 64000 0 0 0 0 0 0 0 0 0 0 0 117 36 0 1 99 0 130 0 64000 0 0 0 0 0 0 0 0 0 0 0 138 46 0 2 98 0 130 0 64000 0 0 0 0 0 0 0 0 0 0 0 144 51 1 2 97 ...
The PROCS
heading encompasses the first three fields of
output:
r
number of processes on the run queue
b
number of processes blocked waiting for a resource
w
number of processes swapped out
id
under
the CPU
heading which shows that the system is
almost 100% idle most of the time.
The PAGING
heading encompasses both paging and swapping activity
on the system.
The operating system does not preallocate swap space to
running processes. It only allocates swap space to processes that
have been swapped at least once;
this space is only relinquished when such a process terminates.
It does, however, decrease its internal count of available swappable memory.
In the above example, the amount of free
swap space (frs
) remains a constant 64000
(roughly 32MB in 512-byte units). Because this is
the amount of swap originally configured for this system,
no swapping or paging out to disk occurred during the sampling
period. This is confirmed by the zero value of the w
field.
The fields from pos
to rsi
also show that no
processes or regions were swapped in or out during the time that
vmstat was running.
There is a brief amount of paging activity
on the sixth line of output. One
or more processes attempted to access pages that were
not currently valid.
To satisfy the demand for these pages, the kernel obtained
them from the page cache (cch
) in memory or from
filesystems on disk but not from swap (sw
).
If a process invokes the
fork(S)
system call, this creates an additional copy, or
child process,
of the original process. The new process shares the
data or stack regions of its parent. The pages in these regions
are marked copy-on-write (
COW).
This is to avoid wasting CPU and memory resources
because the usual purpose of a fork is for either the parent
or child process to execute a new command in place of itself.
If, instead, the parent or child process tries to write
to a page marked COW, this generates a protection
fault (pft
) causing the page fault handler in the
kernel to make a copy of the page.
The dmd
field accounts for a combination of
demand zero pages (those created and initialized
with zeros for data storage) and demand fill pages
(those created and filled with text).
System call (sy
) and context switching activity (cs
)
can also be seen under the SYSTEM
heading.
The -s option to vmstat reports statistics about paging activity since the system was started or in a specified time interval:
64000 free swap space 12222 demand zero and demand fill pages 25932 pages on swap 44589 pages in cache 28719 pages on file 33791 protection fault 84644 pages are freed 23 success in swapping out a process 0 fail in swapping in a process 22 success in swapping in a process 98 swapping out a region 64 swapping in a region 457461 cpu context switches 1870524 system callsLines showing large values for
pages on swap
,
success in swapping out a process
,
success in swapping in a process
,
swapping out a region
, and
swapping in a region
may indicate that
excessive swapping or paging is degrading performance.
The -f option to vmstat provides information about the number of forks (that is, new processes created) since the system was started or in a specified time interval. For example, to monitor how many fork system calls are being invoked every second, use the command vmstat -f 1:
0 forks 0 forks 2 forks 1 forks 0 forks ...