vmstat(1)vmstat(1)NAMEvmstat - Displays virtual memory statistics
SYNOPSISvmstat interval [count]
vmstat [-D | -f | -i | -M | -p | -P | -r rad_id | -R | -s | -w]
The vmstat command displays system statistics for virtual memory, pro‐
cesses, trap, and CPU activity.
OPTIONS
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 informa‐
tion can be used for kernel debugging. Displays statistics for the vm
and ubc subsystems for all Resource Affinity Domains (RADs). The fol‐
lowing virtual memory (VM) information is included in the display out‐
put: All VM page faults. Kernel page faults. Copy on write optimiza‐
tion missed, page copied. Kernel zero filled on demand. Page alloca‐
tions 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_page‐
out_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 num‐
ber 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 allo‐
cations 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 fol‐
lowing 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 mem‐
ory 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 sys‐
tem (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 phys‐
ical memory resides when the vmstat command was run. It indi‐
cates 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 typi‐
cally shows: vm and ubc wired pages meta data, malloc, and con‐
tig pages user, kernel, and free ptepages Displays virtual mem‐
ory 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 (inte‐
ger) 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 avail‐
able for use. wire - Total number of wired pages. wirv - Num‐
ber 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 transla‐
tion 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 func‐
tion), 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
DESCRIPTION
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 parame‐
ter. The first report generated by the vmstat command includes statis‐
tics for the time since the last reboot. Each subsequent report is for
the specified interval only. To control the number of reports gener‐
ated, specify a value for the count parameter after the interval param‐
eter.
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 pag‐
ing 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. Num‐
ber 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 mod‐
ification 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 pro‐
cesses. Percentage of system time. Percentage of idle time. Percent‐
age 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.
EXAMPLES
The following is an example of the typical output (derived from a sin‐
gle-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
SEE ALSO
Commands: iostat(1), sysman(8)vmstat(1)