min_percent_cpu
Description | Minimum percentage of
CPU that pageout can consume. This variable is used as
the starting point for determining the maximum amount of time that can be
consumed by the page scanner.
|
Data Type | Signed integer
|
Default | 4
|
Range | 1 to 80
|
Units | Percentage
|
Dynamic? | Yes
|
Validation | None
|
When to Change | Increasing this value
on systems with multiple CPUs and lots of memory, which are subject to intense
periods of memory demand, enables the pager to spend more time attempting
to find memory.
|
Commitment Level | Unstable
|
handspreadpages
Description | The Solaris environment
uses a two-handed clock algorithm to look for pages that are candidates for
reclaiming when memory is low. The first hand of the clock walks through memory
marking pages as unused. The second hand walks through memory some distance
after the first hand, checking to see if the page is still marked as unused.
If so, the page is subject to reclaim. The distance between the front hand
and the back hand is handspreadpages.
|
Data Type | Unsigned long
|
Default | fastscan
|
Range | 1 to maximum number of physical
memory pages on the system
|
Units | Pages
|
Dynamic? | Yes. This parameter requires
that the kernel variable reset_hands also be set to a non-zero
value. Once the new value of handspreadpages has been recognized, reset_hands is set to zero.
|
Validation | Set to lesser of the
amount of physical memory and the handspreadpages value
|
When to Change | When you want the
amount of time that pages are potentially resident before reclaim is increased.
Increasing this value increases the separation between the hands, and therefore,
the amount of time before a page can be reclaimed.
|
Commitment Level | Unstable
|
pages_before_pager
Description | Part of a system threshold
that immediately frees pages after an I/O completes instead of storing the
pages for possible reuse. The threshold is lotsfree + pages_before_pager. The NFS environment also uses this threshold to curtail its asynchronous
activities as memory pressure mounts.
|
Data Type | Signed integer
|
Default | 200
|
Range | 1 to amount of physical memory
|
Units | Pages
|
Dynamic? | No
|
Validation | None
|
When to Change | When the majority
of I/O is done for pages that are truly read or written once and never referenced
again. Setting this variable to a larger amount of memory keeps adding pages
to the free list.
When the system is subject to bursts of severe memory pressure. A larger
value here helps to keep a bigger cushion against the pressure.
|
Commitment Level | Unstable
|
maxpgio
Description | Maximum number of page
I/O requests that can be queued by the paging system. This number is divided
by 4 to get the actual maximum used by the paging system. It is used to throttle
the number of requests as well as to control process swapping.
|
Data Type | Signed integer
|
Default | 40
|
Range | 1 to 1024
|
Units | I/0s
|
Dynamic? | No
|
Validation | None
|
Implicit | The maximum number of I/O
requests from the pager is limited by the size of a list of request buffers,
which is currently sized at 256.
|
When to Change | When the system is
subject to bursts of severe memory pressure. A larger value here helps to
recover faster from the pressure if more than one swap device is configured
or the swap device is a striped device.
|
Commitment Level | Unstable
|
Swapping-Related Variables
Swapping in the Solaris environment is accomplished by the swapfs pseudo
file system. The combination of space on swap devices and physical memory
is treated as the pool of space available to support the system for maintaining
backing store for anonymous memory. The system attempts to allocate space
from disk devices first, and then uses physical memory as backing store. When
swapfs is forced to use system memory for backing store, limits are enforced
to ensure that the system does not deadlock because of excessive consumption
by swapfs.
swapfs_reserve
Description | Amount of system memory
that is reserved for use by system (UID = 0) processes.
|
Data Type | Unsigned long
|
Default | The smaller of 4 Mbytes
and 1/16th of physical memory
|
Range | The minimum value is 4 Mbytes
or 1/16th of physical memory, whichever is smaller, expressed as pages using
the page size returned by getpagesize(3C).
The maximum is the number of physical memory pages. The maximum value
should be no more than 10% of physical memory. The system does no enforcement
of this range other than that described in the Validation section.
|
Units | Pages
|
Dynamic? | No
|
Validation | None
|
When to Change | Generally not necessary.
Only change on recommendation of a software provider, or when system processes
are terminating because of an inability to obtain swap space. A much better
solution is to add physical memory or additional swap devices to the system.
|
Commitment Level | Unstable
|