DOCUMENT ID: 1230-02
SYNOPSIS: Three Virtual Memory Performance Monitors
OS RELEASE: 2.x
PRODUCT: Solaris
KEYWORDS: vm virtual memory performance monitors
DESCRIPTION:
Software Virtual Memory - Performance Monitors
* vmstat
* sar
* proctool
These three performance monitors are used to analyze Virtual Memory
performance characteristics. Both sar and vmstat heavily rely on data
that is contained in the following four kernel structures:
* vminfo
* sysinfo
* cpu_vminfo
* cpu_sysinfo
These structures are in /usr/include/sys/sysinfo.h
SOLUTION:
Software VM - vmstat
vmstat supplies the following data related to software virtual memory:
* re - number of page reclaims
cpu_vminfo.pgrec - incremented whenever a valid page is reclaimed from
the freelist. Also incremented when pvn_write_done tries to free a page
and notices that the page has been referenced by another thread.
* mf - number of "minor" faults (cpu_info.hat_fault +
cpu_vminfo.as_fault)
cpu_vminfo.hat_fault - incremented whenever a fault can be satisfied by
loading the software copy of a pte into the MMU.
cpu_vminfo.as_fault - incremented in as_fault() for each fault that is
the result of an invalid translation.
* pi - kilobytes of data that has been paged.
cpu_vminfo.pgpgin - incremented in pageio_setup() for each page that is
needed.
* swap - amount of unreserved swap space
vminfo.swap_avail - this value is the result of subtracting the total
amount of reserved swap space from the maximum swap space on the system.
* free - amount of free physical memory
vminfo.freemem - updated in the clock() routine at a one-second
intervals.
Software VM - sar
The -r and -p options for sar(1) provide data relevant to the software
VM subsystem.
* atch/s - updated only for valid pages reclaimed from the
freelist.
cpu_vminfo.pgfrec - incremented each time a page fault results in the
page being found on the page freelist. This value is incremented in
page_reclaim().
* pgin/s - page-in requests. Several pages may make up one
request.
cpu_vminfo.pgin - incremented in pageio_setup() for each request of one
or more pages.
* ppgin/s - number of pages paged in per second.
cpu_vminfo.pgpgin - same as vmstat() pi field.
* pflt/s - number of faults that occurred because of
protection errors. (cpu_vminfo.prot_fault +
cpu_vminfo.cow_fault).
cpu_vminfo.prot_fault - incremented in as_fault() each time a fault
occurs as a result of a protection error.
cpu_vminfo.cow_fault - incremented in anon_private() each time a
reference to a object or shared anon page is converted to private page.
* vflt/s - address translation faults per second.
(cpu_vminfo.hat_fault + cpu_vminfo.as_fault)
cpu_info.as_fault and cpu_vminfo.hat_fault - equivalent of mf field in
vmstat().
* slock/s - incremented when a fault occurs due to a
lock request
cpu_vminfo.softlock - incremented in as_fault() each time a fault occurs
as a result of a lock request.
* freemem - prints current amount of free physical memory
in 512-byte blocks.
vminfo.freemem - same as vmstat() free field.
* freeswap - prints current amount of unallocated swap
space.
vminfo.swap_free - set in the clock() routine once per second. This
value includes unallocated, unreserved swap space as well as swap space
that has been reserved but not allocated.
Software VM - proctool
proctool is a window-based tool that can be used to:
* View current system performance statistics
* Analyze individual process resource usage
* Graphically record the paging activity on the
system.
* Monitor levels of various resources on the system
* Modify/query a process's scheduling configuration.
proctool is not part of the Solaris 2.x release. This tool is not
supported by Sun.
DATE APPROVED: 11/25/94