[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Commands Reference, Volume 6
vmstat Command
Purpose
Reports virtual memory statistics.
Syntax
vmstat [ -f ] [ -i ] [ -s ]
[ -I ] [ -t ] [ -v ]
[ PhysicalVolume ... ] [ Interval [ Count ] ]
Description
The vmstat command reports statistics
about kernel threads, virtual memory, disks, traps and CPU activity. Reports
generated by the vmstat command can be used to balance
system load activity. These system-wide statistics (among all processors)
are calculated as averages for values expressed as percentages, and as sums
otherwise.
If the vmstat command is invoked
without flags, the report contains a summary of the virtual memory activity
since system startup. If the -f flag is specified, the vmstat command reports the number of forks since system
startup. The PhysicalVolume parameter specifies the
name of the physical volume.
The Interval parameter specifies
the amount of time in seconds between each report. The first report contains
statistics for the time since system startup. Subsequent reports contain statistics
collected during the interval since the previous report. If the Interval parameter is not specified, the vmstat command
generates a single report and then exits. The Count parameter
can only be specified with the Interval parameter.
If the Count parameter is specified, its value determines
the number of reports generated and the number of seconds apart. If the Interval parameter is specified without the Count parameter, reports are continuously generated. A Count parameter of 0 is not allowed.
AIX 4.3.3 and later contain enhancements
to the method used to compute the percentage of CPU time spent waiting on
disk I/O (wio time).The method used in AIX 4.3.2 and
earlier versions of the operating system can, under certain circumstances,
give an inflated view of wio time on SMPs.
The method used in AIX 4.3.2 and earlier
versions is as follows: At each clock interrupt on each processor (100 times
a second per processor), a determination is made as to which of the four categories
(usr/sys/wio/idle) to place the last 10 ms of time. If the CPU was busy in
usr mode at the time of the clock interrupt, then usr gets the clock tick
added into its category. If the CPU was busy in kernel mode at the time of
the clock interrupt, then the sys category gets the tick. If the CPU was not
busy, a check is made to see if any I/O to disk is in progress. If any disk I/O
is in progress, the wio category is incremented. If no disk I/O is in progress
and the CPU is not busy, the idle category gets the tick. The inflated view
of wio time results from all idle CPUs being categorized as wio regardless
of the number of threads waiting on I/O. For example, systems with just one
thread doing I/O could report over 90 percent wio time regardless of the number
of CPUs it has. The wio time is reported by the commands sar (%wio), vmstat (wa) and iostat (% iowait).
The method used in operating system AIX 4.3.3 and
later is as follows: The change in operating system AIX 4.3.3 is to only
mark an idle CPU as wio if an outstanding I/O was started on that CPU. This
method can report much lower wio times when just a few threads are doing I/O
and the system is otherwise idle. For example, a system with four CPUs and
one thread doing I/O will report a maximum of 25 percent wio time. A system
with 12 CPUs and one thread doing I/O will report a maximum of 8 percent wio
time. NFS client reads/writes go through the VMM, and the time that biods
spend in the VMM waiting for an I/O to complete is now reported as I/O wait
time.
The kernel maintains statistics for kernel threads, paging,
and interrupt activity, which the vmstat command accesses
through the use of the the perfstat kernel extension.
The disk input/output statistics are maintained by device drivers. For disks,
the average transfer rate is determined by using the active time and number
of transfers information. The percent active time is computed from the amount
of time the drive is busy during the report.
The following example of a report generated by the vmstat command contains the column headings and their description:
kthr: kernel thread state changes per second
over the sampling interval.
r |
Number of kernel threads placed in run queue. |
b |
Number of kernel threads placed in wait queue (awaiting resource,
awaiting input/output). |
Memory: information about
the usage of virtual and real memory. Virtual pages are considered active
if they have been accessed. A page is 4096 bytes.
avm |
Active virtual pages. |
fre |
Size of the free list.
Note: A large
portion of real memory is utilized as a cache for file system data. It is
not unusual for the size of the free list to remain small. |
Page: information about
page faults and paging activity. These are averaged over the interval and
given in units per second.
re |
Pager input/output list. |
pi |
Pages paged in from paging space. |
po |
Pages paged out to paging space. |
fr |
Pages freed (page replacement). |
sr |
Pages scanned by page-replacement algorithm. |
cy |
Clock cycles by page-replacement algorithm. |
Faults: trap and interrupt
rate averages per second over the sampling interval.
in |
Device interrupts. |
sy |
System calls. |
cs |
Kernel thread context switches. |
Cpu: breakdown of percentage
usage of CPU time.
us |
User time. |
sy |
System time. |
id |
CPU idle time. |
wa |
CPU idle time during which the system had outstanding disk/NFS I/O
request(s). See detailed description above. |
Disk: Provides the number
of transfers per second to the specified physical volumes that occurred in
the sample interval. The PhysicalVolume parameter
can be used to specify one to four names. Transfer statistics are given for
each specified drive in the order specified. This count represents requests
to the physical device. It does not imply an amount of data that was read
or written. Several logical requests can be combined into one physical request.
If the -I flag is specified, an I/O oriented view
is presented with the following column changes.
kthr |
The column p will also be displayed besides columns r and b.
- p
- Number of threads waiting on actual physical I/O per second.
|
page |
New columns fi and fo will
be displayed instead of re and cy columns.
- fi
- File page-ins per second.
- fo
- File page-outs per second.
|
Flags
Note: Both the -f and -s flags can be entered on
the command line, but the system will only accept the first flag specified
and override the second flag.
-f |
Reports the number of forks since system startup. |
-i |
Displays the number of interrupts taken by each device since system
startup. |
-I |
Displays I/O oriented view with the new columns of output, p under heading kthr,and columns fi and fo under heading page instead of the columns re and cy in the page heading. |
-s |
Writes to standard output the contents of the sum structure, which
contains an absolute count of paging events since system initialization. The -s flag can only be used with the -v flag.
These events are described as follows:
- address translation faults
- Incremented for each occurrence of an address translation page fault.
I/O may or may not be required to resolve the page fault. Storage protection
page faults (lock misses) are not included in this count.
- page ins
- Incremented for each page read in by the virtual memory manager. The
count is incremented for page ins from page space and file space. Along with
the page out statistic, this represents the total amount of real I/O initiated
by the virtual memory manager.
- page outs
- Incremented for each page written out by the virtual memory manager.
The count is incremented for page outs to page space and for page outs to
file space. Along with the page in statistic, this represents the total amount
of real I/O initiated by the virtual memory manager.
- paging space page ins
- Incremented for VMM initiated page ins from paging space only.
- paging space page outs
- Incremented for VMM initiated page outs to paging space only.
- total reclaims
- Incremented when an address translation fault can be satisfied without
initiating a new I/O request. This can occur if the page has been previously
requested by VMM, but the I/O has not yet completed; or if the page was pre-fetched
by VMM's read-ahead algorithm, but was hidden from the faulting segment; or
if the page has been put on the free list and has not yet been reused.
- zero-filled page faults
- Incremented if the page fault is to working storage and can be satisfied
by assigning a frame and zero-filling it.
- executable-filled page
faults
- Incremented for each instruction page fault.
- pages examined by the
clock
- VMM uses a clock-algorithm to implement a pseudo least recently used
(lru) page replacement scheme. Pages are aged by being
examined by the clock. This count is incremented for each page examined by
the clock.
- revolutions of the clock
hand
- Incremented for each VMM clock revolution (that is, after each complete
scan of memory).
- pages freed by the clock
- Incremented for each page the clock algorithm selects to free from
real memory.
|
|
- backtracks
- Incremented for each page fault that occurs while resolving a previous
page fault. (The new page fault must be resolved first and then initial page
faults can be backtracked.)
- lock misses
- VMM enforces locks for concurrency by removing addressability to a
page. A page fault can occur due to a lock miss, and this count is incremented
for each such occurrence.
- free frame waits
- Incremented each time a process is waited by VMM while free frames
are gathered.
- extend XPT waits
- Incremented each time a process is waited by VMM due to a commit in
progress for the segment being accessed.
- pending I/O waits
- Incremented each time a process is waited by VMM for a page-in I/O
to complete.
- start I/Os
- Incremented for each read or write I/O request initiated by VMM. This
count should equal the sum of page-ins and page-outs.
- iodones
- Incremented at the completion of each VMM I/O request.
- CPU context switches
- Incremented for each CPU context switch (dispatch of a new process).
- device interrupts
- Incremented on each hardware interrupt.
- software interrupts
- Incremented on each software interrupt. A software interrupt is a
machine instruction similar to a hardware interrupt that saves some state
and branches to a service routine. System calls are implemented with software
interrupt instructions that branch to the system call handler routine.
- traps
- Not maintained by the operating system.
- syscalls
- Incremented for each system call.
|
-t |
Prints the time-stamp next to each line of output of vmstat. The time-stamp is displayed in the HH:MM:SS format.
Note: Time stamp will not be printed
if -f, -s, or -i flags are specified. |
-v |
Writes to standard output various statistics maintained by the Virtual
Memory Manager. The -v flag can only be used with the -s flag.
- memory pages
- Size of real memory in number of 4 KB pages.
- lruable pages
- Number of 4 KB pages considered for replacement. This number excludes
the pages used for VMM internal pages, and the pages used for the pinned part
of the kernel text.
- free pages
- Number of free 4 KB pages.
- memory pools
- Tuning parameter (managed using vmo) specifying
the number of memory pools.
- pinned pages
- Number of pinned 4 KB pages.
- maxpin percentage
- Tuning parameter (managed using vmo) specifying
the percentage of real memory which can be pinned.
- minperm percentage
- Tuning parameter (managed using vmo) in percentage
of real memory. This specifies the point below which file pages are protected
from the re-page algorithm.
- maxperm percentage
- Tuning parameter (managed using vmo) in percentage
of real memory. This specifies the point above which the page stealing algorithm
steals only file pages.
- numperm percentage
- Percentage of memory currently used by the file cache.
- file pages
- Number of 4 KB pages currently used by the file cache.
- compressed percentage
- Percentage of memory used by compressed pages.
- compressed pages
- Number of compressed memory pages.
- numclient percentage
- Percentage of memory occupied by client pages.
- maxclient percentage
- Tuning parameter (managed using vmo) specifying the maximum percentage
of memory which can be used for client pages.
- client pages
- Number of client pages.
- remote pageouts scheduled
- Number of pageouts scheduled for client filesystems.
- pending disk I/Os blocked with no pbuf
- Number of pending disk I/O requests blocked because no pbuf was available.
Pbufs are pinned memory buffers used to hold I/O requests at the logical volume
manager layer.
- paging space I/Os blocked with no psbuf
- Number of paging space I/O requests blocked because no psbuf was available.
Psbufs are pinned memory buffers used to hold I/O requests at the virtual
memory manager layer.
|
-v |
(Statistics displayed by -v,
continued):
- filesystem I/Os blocked with no fsbuf
- Number of filesystem I/O requests blocked because no fsbuf was available.
Fsbuf are pinned memory buffers used to hold I/O requests in the filesystem
layer.
- client filesystem I/Os blocked with no fsbuf
- Number of client filesystem I/O requests blocked because no fsbuf was
available. NFS (Network File System) and VxFS (Veritas) are client filesystems.
Fsbuf are pinned memory buffers used to hold I/O requests in the filesystem
layer.
- external pager filesystem I/Os blocked with no fsbuf
- Number of external pager client filesystem I/O requests blocked because
no fsbuf was available. JFS2 is an external pager client filesystem. Fsbuf
are pinned memory buffers used to hold I/O requests in the filesystem layer.
|
Examples
- To display a summary of the statistics since boot,
type:
vmstat
- To display five summaries at 2-second intervals,
type:
vmstat 2 5
The first summary contains statistics for the
time since boot.
- To display a summary of the statistics since boot
including statistics for logical disks scdisk13 and scdisk14, type:
vmstat scdisk13 scdisk14
- To display fork statistics, type:
vmstat -f
- To display the count of various events, type:
vmstat -s
- To display time-stamp next to each column of output of vmstat, type:
vmstat -t
- To display the new I/O oriented view with an alternative set of columns,
type:
vmstat -I
- To display all the VMM statistics available, type:
vmstat -vs
Files
/usr/bin/vmstat |
Contains the vmstat command. |
Related Information
The iostat and vmo command.
Monitoring and Tuning Memory
Use in AIX 5L Version 5.2 Performance Management Guide.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]