vmstat - Displays virtual memory statistics
vmstat interval [count]
vmstat [-D | -f | -i | -M | -p | -P | -r rad_id | -R
| -s | -w]
The vmstat command displays system statistics for virtual
memory, processes, trap, and CPU activity.
Displays debugging information if kmem_debug is set. Displays
only statistics about the number of forks since system
startup (see the fork() call). Displays the following
virtual memory statistics: # vmstat -i Virtual Memory
Statistics: (pagesize = 8192)
procs memory pages
intr cpu
r w u act free wire fault cow zero react pin pout in
sy cs us sy id
2 82 29 23K 12K 4906 3M 963K 834K 620 710K 0 73
30 391 0 2 98 Displays information about memory usage by
buckets. This information can be used for kernel debugging.
Displays statistics for the vm and ubc subsystems
for all Resource Affinity Domains (RADs). The following
virtual memory (VM) information is included in the display
output: All VM page faults. Kernel page faults. Copy on
write optimization missed, page copied. Kernel zero
filled on demand. Page allocations resulting in a page
steal. Total count of pre-written pages. Count of
prewritten anonymous object pages. Count of prewritten
swap object pages. Pages freed that are clean and
reclaimable. Swap write reclaims. Page allocations
resulting in a page steal. Page steal wins. Faults from
the free list. VM_pageout_scan calls. VM_pageout_scan
pages scanned. Pageout calls made. Successful pageouts.
Pageout target met. Pageout I/O met. Active pages
scanned while replenishing the least recently used (LRU)
list Active pages moved to the inactive list. Failed loop
lock tries during LRU processing. Pages migrated to a new
resource affinity domain (RAD). Total copy on write part
of all faults. Total user zero filled on demand. Total
I/O writes. Total page writes. Total I/O reads. Total
page reads. Total ages returned to the active list (reactivated).
The Unified Buffer Cache (UBC) data fields displayed
when using the -p option are as follows:
Page allocation resulting in a least recently used
(LRU) scan. The LRU scan has reached the end of
list. The number of LRU scan pushed pages. The
LRU scan stolen page allocation. The number of
page steal sequential drain attempts. The number
of LRU write ahead calls. The number of LRU write
ahead scans. The LRU write ahead scan has hit the
end of the list. The number of LRU purge calls.
The number of LRU purge scans. The LRU purge scan
has hit the end of the list. The LRU purge scan
I/O target was met. The number of LRU purge scan
pages freed. The number of UBC mmaped pages freed.
The number of file system denied writes. The number
of pagesteal required I/O and waits. The number
of pagesteal scans. The number of dirty write
aheads. The number of pages freed that are clean
and reclaimable. The number of page allocations
resulting in a page steal. The number of lookup
tries. The number of lookup hits. The number of
faults from the free list. The number of low memory
steals The number of low memory steal wins.
The number of sequential drains. The total memory
demand on UBC. The total referenced LRU pages.
The total I/O issued. The total number of pages
written. Displays the following accumulated
statistics about physical memory use: Sum of the
total physical memory in the machine. This statistic
describes how physical memory is clustered. It
shows where memory is being used (pal, os, and
nvram), the starting and ending pageframes, and the
total amount of memory used. This statistic shows
a breakdown of physical memory used by the operating
system (such as text, data, and bss). It contains
the starting and ending pageframes, memory
usage per category, and total memory used. This
statistic provides a snapshot of where managed
physical memory resides when the vmstat command was
run. It indicates the number of pages in the free,
active, and inactive queues, the number of wired
pages, and the number of pages held in the unified
buffer cache (UBC). This statistic describes the
physical pages that are wired in memory. The fields
show the number of wired pages in anonymous (vm)
memory, the UBC, pages used for meta data, the kernel
malloc pools, contiguous memory, and pages used
for page table entries (ptes). The display typically
shows: vm and ubc wired pages meta data, malloc,
and contig pages user, kernel, and free
ptepages Displays virtual memory statistics for the
specified Resource Affinity Domain (RAD) only. The
rad_id is an integer assigned automatically by the
system.
Process (procs) data fields displayed when you use
the -r option are as follows: RAD - Resource Affinity
Domain identifier (integer) r - Number of
threads that are running or are runnable w - Number
of threads that can be interrupted that are waiting
u - Number of threads that cannot be interrupted
that are waiting st - Number of stopped threads sw
- Number of swapped threads
Memory data fields displayed when you use the -r
option are as follows: actv - Total number of pages
on the active list. actu - Number of active vm
pages. acti - Number of inactive vm pages. free -
Total number of pages that are clean and available
for use. wire - Total number of wired pages. wirv
- Number of wired vm pages. wiru - Number of wired
UBC pages.
Because of a restriction on the display space, the
contents of some fields are truncated rather than
rounded up. Displays information for all RADs.
Typical output is shown under the -r option. Displays
the following accumulated statistics along
with the page size: Total number of pages that are
currently in use but can be used for paging. Total
number of VM pages that are allocated but are most
likely to be used for paging. Total number of
unreferenced (clean) pages that are available for
use. Total number of pages that are currently in
use and cannot be used for paging (not a real
list). Number of address translation faults that
have occurred. Number of copy-on-write page
faults, which occur if the requested page is shared
by a parent process and one or more child processes
(using the fork function), and if one of the processes
needs to modify the page. In this case, VM
loads a new address into the translation buffer and
copies the contents of the requested page into the
new address for modification by the process. Number
of zero-filled-on-demand page faults, which
occur if VM cannot find the page in the internal
data structures and if the requested page is new
and has never been referenced. In this case, VM
initializes a physical page (the contents of the
page are zeroed out) and loads the address into the
page table. Number of pages that have been faulted
while on the inactive list. Number of requests for
pages from a pager. Number of pages that have been
paged out. Number of task and thread context
switches. Number of nonclock device interrupts.
Number of system calls called. Appends iowait
information to the default output as follows: Virtual
Memory Statistics: (pagesize = 8192)
procs memory pages
intr cpu
r w u act free wire fault cow pin pout in
sy cs us sy id iowait
2 82 29 23K 12K 4905 3M 963K 710K 0 73
30 391 0 2 98 0
Use the vmstat command to display statistics which
describe how virtual memory is used.
To cause the vmstat command to display statistics at the
specified interval, specify a time in seconds for the
optional interval parameter. The first report generated by
the vmstat command includes statistics for the time since
the last reboot. Each subsequent report is for the specified
interval only. To control the number of reports generated,
specify a value for the count parameter after the
interval parameter.
For example, the command vmstat 1 10 produces 10 reports
at 1-second intervals. You cannot specify a value for the
count parameter without also specifying a value for the
interval parameter because the first numeric argument to
vmstat is always assumed to be interval.
At any time, system memory can be in use by the kernel as
follows: kseg -- In use by kseg UBC - In use by the unified
buffer cache wired - Pages that are currently in use
and cannot be used for paging On the active list - Pages
that are currently in use but can be used for paging On
the inactive list - Pages that are allocated but are most
likely to be used for paging On the free list - Pages that
are clean and available for use
The vmstat command does not report on the memory in kseg
and memory used by the UBC.
The following values are displayed:
Process information: Number of threads that are running or
are runnable. Number of threads waiting interruptibly.
Number of threads waiting uninterruptibly.
Virtual memory information: Total number of pages on the
active list, the inactive list (pages that are allocated
but are most likely to be used for paging), and UBC least
recently used (LRU) list. Total number of pages that are
clean and available for use. Total number of pages that
are currently in use and cannot be used for paging (not a
real list). Number of address translation faults that
have occurred. Number of copy-on-write page faults, which
occur if the requested page is shared by a parent process
and one or more child processes (using the fork function)
and if one of the processes needs to modify the page. In
this case, VM loads a new address into the translation
buffer and copies the contents of the requested page into
the new address for modification by the process. Number
of zero-filled-on-demand page faults, which occur if VM
cannot find the page in the internal data structures and
if the requested page is new and has never been referenced.
In this case, VM initializes a physical page (the
contents of the page are zeroed out) and loads the address
into the page table. Number of pages that have been
faulted while on the inactive list. Number of requests
for pages from a pager. Number of pages that have been
paged out.
Interrupt information: Number of nonclock device interrupts
per second. Number of system calls called per second.
Number of task and thread context switches per second.
CPU information: Percentage of user time for normal and
priority processes. Percentage of system time. Percentage
of idle time. Percentage of iowait. If the -w option
is not specified, the iowait time is included in the id
statistic.
Specify -f to display fork statistics only. Specify -s
for a single display of accumulated statistics, as well as
page size.
The following is an example of the typical output (derived
from a single-RAD, single-CPU server) when using the -p
option: # vmstat -p
Total RADs: 1 Total CPUs: 1 Total Ticks: 512
36441297 VM faults 1677 VM kfaults
2115850 VM cowcopy 1677 VM kzfod
0 VM pagesteal 0 VM prewrites
0 VM anon_prewrites 0 VM
swap_prewrites
0 VM cleanrecs 0 VM swaprecs
0 VM lmsteal 0 VM lmstealwins
0 VM ffl 0 VM pout_scan
0 VM pout_pagescan 0 VM pout_call
0 VM pout 0 VM pout_target
0 VM pout_burst 12548 VM act_scans
12548 VM act_moves 0 VM lock_fails
0 VM migrations
2547665 VM TOT cowfaults 3813949 VM TOT zfod
0 VM TOT iowrites 0 VM TOT
pgwrites
26823910 VM TOT ioreads 0 VM TOT pgreads
1423 VM TOT reactivate
0 UBC allocscans 0 UBC alloceol
0 UBC allocpush 0 UBC allocstole
0 UBC allocseq 0 UBC wacalls
0 UBC wascans 0 UBC waeol
0 UBC prges 0 UBC prgscans
0 UBC prgeol 0 UBC prgburst
0 UBC prgfree 0 UBC mmapfree
79566 UBC wdeny 0 UBC hardsteals
0 UBC stealscans 0 UBC dirtywra
0 UBC reclaim 0 UBC pagesteal
42127497 UBC lookups 41985615 UBC lookuphits
0 UBC ffl 0 UBC lmsteal
0 UBC lmstealwins 0 UBC seqdrain
144957 UBC TOT alloc 0 UBC TOT
iowrites
0 UBC TOT reactivate 0 UBC TOT
pgwrites
The following is an example of typical output (reformatted
for ease of reference) when you use the -r option: #
vmstat -r 0 Virtual Memory Statistics: (pagesize = 8192)
procs memory
pages
RAD r w u st sw act actv actu acti free wire wirv wiru
fault
0 2 157 27 0 0 31K 4928 18K 8813 24K 6544 3015 0
36M
intr cpu
cow zero react pin pout in sy cs us sy id
2M 3M 1423 26M 0 102 249 229 0 1 99
Commands: iostat(1), sysman(8)
vmstat(1)
[ Back ] |