vmubc(1)vmubc(1)NAMEvmubc - Display Universal Buffer Cache, CPU, VM and other system sta‐
tistics
SYNOPSISvmubc [Xoption...] [-h/-help] [-count iterations] [-interval
delay_seconds] [-tty/-ttyx] [-cpu] [-memory] [-ubc] [-metadata] [-page‐
fault] [-swap] [-intr] [-syscall]
OPTIONS
X11 terminal options (i.e -display node:0.0) displays usage message
specifies the number of reports. specifies display update cycle. 1
seconds is default.
-tty generates output to a tty instead of a X11 display.
-cpu displays only the CPU information.
-memory displays only the Memory Pages information.
-ubc displays only the UBC information.
-metadata displays only the UFS Metadata Cache information.
-pagefault displays only the Page Faults information.
-swap displays only the Swap information.
-intr displays only system interrrupts.
-syscall displays only syscall information.
DESCRIPTIONvmubc is a tool to help you understand the behavior of the memory sys‐
tem. Much of the information is also presented by vmstat(1), but it
also displays Unified Buffer Cache (UBC) and Metadata cache information
in addition to the systems interrupt and syscall activity. This infor‐
mation can be useful in understanding the causes of poor system behav‐
ior.
VM and UBC compete for physical pages. Three kernel parameters control
this behavior: ubc-minpercent -- the minimum size of the UBC, expressed
as a percentage of memory. The default value is 10%. ubc-maxpercent
-- the maximum size of the UBC, expressed as a percentage of memory.
The default value is 100%. ubc-borrowpercent -- the threshold below
which borrowing from the UBC is not permitted, expressed as a percent‐
age of memory. The default value is 10%.
This means the the UBC is allowed to vary between 10% and 100% of mem‐
ory (in practice 100% is never achieved) and VM is allowed to vary
between 90% and 0% (again, never achieved) of memory.
What goes where in memory?
Your program's executable code (called "text") goes in the UBC. Dynam‐
ically allocated memory (i.e. stack and heap) go in VM. Pages read
from or written to files go in the UBC. Memory-mapped files (readonly)
go in the UBC. Memory mapped files (read/write) go in VM.
How does this behave?
So long are there are free pages in the system (the size of the freel‐
ist is above 128 pages), requests for new pages by either the VM or UBC
are satisfied from this list. When the freelist crosses its trigger
threshold (default is <128 pages), old pages are evicted from either
the UBC or VM to satisfy requests for new pages. If the request is for
VM and the UBC size is greater than ubc-borrowper cent, pages will be
evicted from the UBC. If the UBC size is less than ubc-borrowpercent,
pages will be evicted alternately from the UBC and VM. Note that VM
pages on both the Active and Inactive lists are by definition dirty
(clean VM pages are on the Free list), and must be written to a swap
device when evicted. UBC pages may be either dirty or clean, but are
usually clean. Clean pages do not need to be written to disk, and thus
take less time to evict.
When pages must be evicted from VM, they are taken from the Inactive
list. This list is only maintained when page faulting is required. If
your system has never needed to evic t pages from VM (since booted), it
will have an Inactive list of size 0.
The vmubc command reports the following information: This is the per‐
cent of time the CPU has spent in the following states:
User: executing in user-mode
Nice: executing in user-mode at reduced priority
System: executing in kernel-mode (i.e. system calls)
Wait: waiting for hardware access (e.g. tape, disk, etc.)
Idle: doing nothing
Free: on the freelist
Wired: not pageable -- generally belonging to the kernel or a device
driver
Active: assigned to a process
Inactive: formerly assigned to a process but not used for at least n
seconds.
UBC: number of pages currently assigned to the UBC
Min: number of pages guaranteed available for the UBC (depends on
ubc-minpercent)
Clean: UBC pages that are clean (identical to disk content).
Dirty: UBC pages that are modified, but not yet written to disk.
VM: all managed VM pages not currently claimed by the UBC.
VM-only: number of pages never claimed by the UBC (depends on ubc-max‐
percent, usually "0")
Note that the UBC Page Usage and Memory pages give different views of
the status of the same pages. For example, the Free list may contain
pages assigned to both the VM and UBC systems. There may be discrep‐
ances in the totals however, since under some circumstances pages may
not appare in the UBC Page Usage statistics. In general, the result of
Clean+Dirty+VM from the UBC Page Usage bar should be the same as the
sum of all "Memory Pages". displays the number of hits and misses in
the UBC. Hits are satisfied from the UBC , which is in physical memory.
Misses are satisfied by loading the appropriate blocks from disk into
the UBC. Prior to this version of "vmubc" only the UFS data cache was
counted. Starting with version V5.0, ADVFS data and metadata counts
are included in this number. displays the number of hits and misses in
the UFS Metadata cache. Hits are satisfied from the cache, which is in
physical memory. Misses are satisfied by loading the appropriate
blocks from disk into the cache. This information is for UFS filesys‐
tems only. AdvFS volumes make no contribution to these numbers. COW :
Copy-on-write faults -- a page that had previously been shared by mul‐
tiple process has been copied so that a process could modify it.
Page In : VM pages read in, either from a swap device or from a file.
Page Out : pages written to a swap device.
React : pages moved from the Inactive lists (see Memory pages) to the
Active list.
Zero : pages filled with zeros (commonly done when a new page is
assigned to a process, to prevent it from discovering data that came
from another process).
SEE ALSOvmstat(1)AUTHOR
George Chaltas, Digital Equipment Corporation
vmubc(1)