Enough pages have been found to satisfy the memory shortfall.
The planned number of pages have been looked at.
Too much time has elapsed.
If a memory shortfall is still present when pageout finishes its scan,
another scan is scheduled for 1/4 second in the future.
The configuration mechanism of the paging subsystem has changed in the
Solaris 9 release. Instead of depending on a set of predefined values for fastscan, slowscan, and handspreadpages, the system determines the appropriate settings for these parameters
at boot time. Setting any of these variables in the /etc/system
file can cause the system to use less than optimal values.
Caution - We recommend that all tuning of the VM system be removed from /etc/system. Run with the default settings
and determine if it is necessary to adjust any of these parameters. Do not
set either cachefree or priority_paging.
They have been removed from the Solaris 9 release.
Beginning in the Solaris 7 5/99 release, dynamic reconfiguration (DR)
for CPU and memory is supported. The behavior of the system in a DR operation
involving the addition or deletion of memory is to recalculate values for
the relevant parameters unless the parameter has been explicitly set in /etc/system. In that case, the value specified in /etc/system is used unless a constraint on the value of the variable has been
violated, in which case the value is reset.
lotsfree
| Description | Initial trigger for
system paging to begin. When this threshold is crossed, the page scanner wakes
up to begin looking for memory pages to reclaim.
| | Data Type | Unsigned long
| | Default | The greater of 1/64th of
physical memory or 512 Kbytes
| | Range | The minimum value is 512 Kbytes
or 1/64th of physical memory, whichever is greater, 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 30% of physical memory. The system does no enforcement
of this range other than that described in the Validation section.
| | Units | Pages
| | Dynamic? | Yes, but dynamic changes
are lost if a memory based DR operation occurs.
| | Validation | If lotsfree is greater than the amount of physical memory, the value is reset
to the default.
| | Implicit | The relationship of lotsfree is greater than desfree, which is greater
than minfree, should be maintained at all times.
| | When to Change | When demand for pages
is subject to sudden sharp spikes, the memory algorithm might not be able
to keep up with demand. One way to work around this problem is to start reclaiming
memory at an earlier time. This solution gives the paging system some additional
margin.
A rule of thumb is to set this parameter to 2 times what the system
needs to allocate in a few seconds. This parameter is workload dependent:
a DBMS server can probably work fine with the default settings, but a system
doing heavy file system I/O might need to adjust this parameter.
For systems with relatively static workloads and large amounts of memory,
adjust this value downwards. The minimum acceptable value is 512 Kbytes expressed
as pages using the page size returned by getpagesize(3C).
| | Commitment Level | Unstable
|
desfree
| Description | Amount of memory desired
to be free at all times on the system.
| | Data Type | Unsigned integer
| | Default | lotsfree
/ 2
| | Range | The minimum value is 256 Kbytes
or 1/128th of physical memory, whichever is greater, 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 15% of physical memory. The system does no enforcement
of this range other than that described in the Validation section.
| | Units | Pages
| | Dynamic? | Yes, unless dynamic reconfiguration
operations that add or delete memory occur. At that point, the value is reset
to whatever was provided in the /etc/system file or was
calculated from the new physical memory value.
| | Validation | If desfree
is greater than lotsfree, desfree is
set to lotsfree / 2. No message is displayed.
| | Implicit | The relationship of lotsfree is greater than desfree, which is greater
than minfree, should be maintained at all times.
| | Side Effects | Several side effects
can arise from increasing the value of this variable. When the new value nears
or exceeds the amount of available memory on the system:
Asynchronous I/O requests are not processed unless available
memory exceeds desfree. Increasing the value of desfree can result in rejection of requests that otherwise would
succeed.
NFS Version 3 asynchronous writes are executed as synchronous
writes.
The swapper is awakened earlier, and the behavior of the swapper
is biased towards more aggressive actions.
The system might not prefault as many executable pages into
the system. This side effect results in applications potentially running slower
than they otherwise would.
| | When to Change | For systems with
relatively static workloads and large amounts of memory, adjust this value
downwards. The minimum acceptable value is 256 Kbytes expressed as pages using
the page size returned by getpagesize(3C).
| | Commitment Level | Unstable
|
minfree
| Description | Minimum acceptable memory
level. When memory drops below this number, the system biases allocations
toward those necessary to successfully complete pageout operations or to swap
processes completely out of memory, and either denies or blocks other allocation
requests.
| | Data Type | Unsigned integer
| | Default | desfree
/ 2
| | Range | The minimum value is 128 kbytes
or 1/256th of physical memory, whichever is greater, 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 7.5% of physical memory. The system does no enforcement
of this range other than that described in the Validation section.
| | Units | Pages
| | Dynamic? | Yes, unless dynamic reconfiguration
operations that add or delete memory occur. At that point, the value is reset
to whatever was provided in the /etc/system file or was
calculated from the new physical memory value.
| | Validation | If minfree
is greater than desfree, minfree is
set to desfree / 2. No message is displayed.
| | Implicit | The relationship of lotsfree is greater than desfree, which is greater
than minfree, should be maintained at all times.
| | When to Change | The default value
is generally adequate. For systems with relatively static workloads and large
amounts of memory, adjust this value downwards. The minimum acceptable value
is 128 Kbytes expressed as pages using the page size returned by getpagesize(3C).
| | Commitment Level | Unstable
|
|