Appendix A
Tunable Parameter Change History
This chapter describes the change history of specific parameters.
Parameters whose functionality has been removed are listed also.
Kernel Parameters
Process Sizing Tunables
maxusers (Solaris 7 Release)
Description | The maxusers parameter drives max_nprocs and maxuprc.
|
Data Type | Signed integer
|
Default | Lesser of the amount of
memory in Mbytes and 1024
|
Range | 1 to 2048
Note - Values greater than 1024 must be specified in /etc/system. If a value greater than 2048 is provided, calculations clamps
the value at 2048, but later processing sets the value to the provided value.
|
Units | Users
|
Dynamic? | No. After computation of
dependent variables is done, maxusers is never referenced
again.
|
Validation | None
|
When to Change | If the default number
of user processes derived by the system is insufficient. This insufficiency
is seen by the following messages on the system console or messages file.
|
Commitment Level | Unstable
|
max_nprocs (Pre-Solaris 8 Releases)
Description | Maximum number of processes
that can be created on a system. Includes system and user processes. Prior
to the Solaris 8 release, the value was determined by computation and then
used in the setting of maxuprc.
This value is also used in determining the size of several other system
data structures. For releases prior to Solaris 8, if a value is provided in
the/etc/system
file it is used rather than the computed value. Other data structures where
this variable plays a role are:
Determining the size of the directory name lookup cache (if ncsize is not specified)
Allocating disk quota structures for UFS (if ndquot is not specified)
Verifying that the amount of memory used by configured system
V semaphores does not exceed system limits
Configuring Hardware Address Translation resources for the
sun4d, sun4m, and Intel platforms
|
Data Type | Signed integer
|
Default | 10 + (16 x maxusers)
|
Range | 266 to value of pidmax
|
Dynamic? | No. max_nprocs is assigned to the v_proc element of the v structure after the initial parameter calculation is completed.
Changing v.v_proc on a running system almost certainly
results in a system crash or silent data corruption.
|
Validation | Compared to maxpid and set to maxpid, if larger. On the sun4d
and Intel platforms, an additional check is made against a platform-specific
value. max_nprocs is set to the smallest value in the triplet
(max_nprocs, maxpid, platform value).
Both platforms use 65,534 as the platform value.
|
When to Change | Starting with the
Solaris 8 release, this value can be changed to enable more than 30,000 processes
on a system. Changing this parameter is one of the steps necessary to enable
support for more than 30,000 processes on a system.
|
Commitment Level | Unstable
|
Paging Related Tunables
In certain revisions of the Solaris 2.6 kernel patch (105181-10 for
SPARC platforms and 105182-09 for Intel platforms) and in the Solaris 7 release,
a new parameter is introduced: priority paging. A new
starting point for pageout thread activity (cachefree)
is also used. When available memory is between cachefree
and lotsfree, priority paging modifies the page-checking
algorithm to skip the page, if it came from an executable (text, stack, or
data). After memory falls below lotsfree, every page is
considered equally. The facility is not enabled by default, but can be enabled
by either setting cachefree to a value greater than lotsfree or by setting the priority_paging variable
to a non-zero value, which sets cachefree to 2 times lotsfree.
cachefree (Solaris 8 Releases)
Description | The Solaris 8 release
changes the way file system pages are cached. These changes subsume the priority
paging capability.
Note - Remove both cachefree and priority_paging settings in the /etc/system
file.
The caching changes remove most of the pressure on the virtual memory
system resulting from file system activity. Several statistics exhibit new
behavior:
Page reclaims are higher because pages are now explicitly
added to the free list after I/O completes.
Free memory is now higher because the free memory count now
includes a large component of the file cache.
Scan rates are drastically reduced.
|
Commitment Level | Obsolete
|
Change History | See "cachefree (Solaris 2.6 and Solaris 7 Releases)"
for more information.
|
cachefree (Solaris 2.6 and Solaris 7 Releases)
Description | Enables priority paging
feature, provided cachefree is greater than lotsfree. This variable is available for systems running the Solaris 2.6
release, with at a minimum, revision 10 of patch 105181 installed, and for
systems running the Solaris 7 release. By default, this feature (cachefree equals lotsfree) is disabled.
|
Data Type | Unsigned long
|
Default | Value of lotsfree unless priority_paging is set, which means cachefree is 2 times lotsfree
|
Range | lotsfree
to physical memory on system
|
Units | Pages
|
Dynamic? | Yes
|
Validation | If less than lotsfree, it is reset to the value of lotsfree.
|
When to Change | Should always be
enabled unless the system is tight on memory, and does excessive I/O where
the contents of the files are needed in the future.
|
Commitment Level | Obsolete
|