man vmstat on AIX
vmstat Command
Purpose
Reports virtual memory statistics.
Syntax
vmstat [ -f ] [ -i ] [ -s ] [ -I ] [ -t ] [ -v ] [ -w] [ -l ] [ 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. If the Interval
parameter is not specified, the vmstat command generates a single report that contains statistics for
the time since system startup 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.
Beginning with AIX 5.3, the vmstat command reports the number of physical processors consumed (pc), and
the percentage of entitlement consumed (ec), in Micro-Partitioning environments. These metrics will only
be displayed on Micro-Partitioning environments.
Reports generated by the vmstat command contains the following column headings and their description:
kthr: information about kernel thread states. (内核线程状态)
r
Average number of runnable kernel threads over the sampling interval. Runnable refers to threads
that are ready but waiting to run and to those threads already running.(可运行的:准备好运行的和已经在运行的。)
b
Average number of kernel threads placed in the VMM wait queue (awaiting resource, awaiting
input/output) over the sampling interval. (在vmm等待队列中的)
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. (free list的size,由于文件系统的cache使用,通常会使free list保持较小的数值)
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.
pc
Number of physical processors consumed. Displayed only if the partition is running with shared
processor.
ec
The percentage of entitled capacity consumed. Displayed only if the partition is running with
shared processor.
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 PhysicalVolume parameter is used, the
physical volume names are printed at the beginning of command execution.
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 (每秒等待在raw设备IO的进程数,当使用 –I参数时)
Number of threads waiting on I/O to raw devices per second.
Page (-I)
New columns fi and fo will be displayed instead of re and cy columns.
fi
File page-ins per second. (每秒文件的page-ins数)
fo
File page-outs per second. (每秒的文件page_outs数)
If, while the vmstat command is running, there is a change in system configuration that will affect the
output, vmstat prints a warning message about the configuration change. It then continues the output,
after printing the updated system configuration information and the header.
If the -l flag is specified, an additional “large-page” section is displayed with the following columns:
alp
Indicates the number of large pages currently in use. (当前使用的大页数)
flp
Indicates the number of large pages on the large page freelist. (大页freelist上的大页数)
Flags
Note: If the -f (or -s) flag is entered on the command line, then the system will only accept the -f (or
-s) flag and will ignore other flags. If both -f and -s flags are specified, the system will accept only
the first flag and ignore 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.
-l
Displays an additional “large-page” section with the alp and flp columns.
-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.)
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.
decrementer interrupts
Incremented on each decrementer interrupt.
mpc send interrupts
Incremented on each mpc send interrupt
mpc receive interrupts
Incremented on each mpc receive interrupt
phantom interrupts
Incremented on each phantom interrupt
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. (以4KB页大小的真实内存页数)
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.
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.
【>vmstat -v 5 2
5275647 memory pages
4998806 lruable pages
1667066 free pages
6 memory pools
611164 pinned pages
80.0 maxpin percentage
10.0 minperm percentage
25.0 maxperm percentage
24.6 numperm percentage
1230706 file pages
0.0 compressed percentage
0 compressed pages
24.8 numclient percentage
25.0 maxclient percentage
1243884 client pages
0 remote pageouts scheduled
0 pending disk I/Os blocked with no pbuf
0 paging space I/Os blocked with no psbuf
2740 filesystem I/Os blocked with no fsbuf
7 client filesystem I/Os blocked with no fsbuf
0 external pager filesystem I/Os blocked with no fsbuf
】
-w
Display the report in wide mode (宽模式显示)
>vmstat -w -I
System configuration: lcpu=22 mem=20607MB
kthr memory page faults cpu
———– ——————— ———————————— —————— ———–
r b p avm fre fi fo pi po fr sr in sy cs us sy id wa
1 1 0 2369790 1666981 41 38 0 0 53 255 154 2599 814 2 0 95 3
Examples
1 To display a summary of the statistics since boot, type:
vmstat
2 To display five summaries at 2-second intervals, type:
vmstat 2 5
The first summary contains statistics for the time since boot.
3 To display a summary of the statistics since boot including statistics for logical disks scdisk13
and scdisk14, type:
vmstat scdisk13 scdisk14
4 To display fork statistics, type:
vmstat -f
5 To display the count of various events, type:
vmstat -s
6 To display time-stamp next to each column of output of vmstat, type:
vmstat -t
7 To display the I/O oriented view with an alternative set of columns, type:
vmstat -I
8 To display all the VMM statistics available, type:
vmstat -vs
9 To display the large-page section with the alp and flp columns at 8-second intervals, type:
vmstat -l 8
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.3 Performance Management Guide.