Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Tunable Parameters Reference Manual Oracle Solaris 11 Information Library |
1. Overview of Oracle Solaris System Tuning
2. Oracle Solaris Kernel Tunable Parameters
Where to Find Tunable Parameter Information
General Kernel and Memory Parameters
fsflush and Related Parameters
General File System Parameters
SPARC System Specific Parameters
4. Internet Protocol Suite Tunable Parameters
5. Network Cache and Accelerator Tunable Parameters
A. Tunable Parameters Change History
Several parameters (or variables) are used to control the number of processes that are available on the system and the number of processes that an individual user can create. The foundation parameter is maxusers. This parameter drives the values assigned to max_nprocs and maxuprc.
Originally, maxusers defined the number of logged in users the system could support. When a kernel was generated, various tables were sized based on this setting. Current Oracle Solaris releases do much of its sizing based on the amount of memory on the system. Thus, much of the past use of maxusers has changed. A number of subsystems that are still derived from maxusers:
The maximum number of processes on the system
The number of quota structures held in the system
The size of the directory name look-up cache (DNLC)
Signed integer
Lesser of the amount of memory in MB or 2048
1 to 2048, based on physical memory if not set in the /etc/system file
1 to 4096, if set in the /etc/system file
Users
No. After computation of dependent parameters is done, maxusers is never referenced again.
None
When the default number of user processes derived by the system is too low. This situation is evident when the following message displays on the system console:
out of processes
You might also change this parameter when the default number of processes is too high, as in these situations:
Database servers that have a lot of memory and relatively few running processes can save system memory when the default value of maxusers is reduced.
If file servers have a lot of memory and few running processes, you might reduce this value. However, you should explicitly set the size of the DNLC. See ncsize.
If compute servers have a lot of memory and few running processes, you might reduce this value.
Unstable
Specifies the number of system process slots to be reserved in the process table for processes with a UID of root (0). For example, fsflush has a UID of root (0).
Signed integer
5
5 to MAXINT
Processes
No. Not used after the initial parameter computation.
Any /etc/system setting is honored.
Unstable
Consider increasing to 10 + the normal number of UID 0 (root) processes on system. This setting provides some cushion should it be necessary to obtain a root shell when the system is otherwise unable to create user-level processes.
Specifies the value of the largest possible process ID.
pidmax sets the value for the maxpid variable. Once maxpid is set, pidmax is ignored. maxpid is used elsewhere in the kernel to determine the maximum process ID and for validation checking.
Any attempts to set maxpid by adding an entry to the /etc/system file have no effect.
Signed integer
30,000
266 to 999,999
Processes
No. Used only at boot time to set the value of pidmax.
Yes. Value is compared to the value of reserved_procs and 999,999. If less than reserved_procs or greater than 999,999, the value is set to 999,999.
max_nprocs range checking ensures that max_nprocs is always less than or equal to this value.
Required to enable support for more than 30,000 processes on a system.
Unstable
Specifies the maximum number of processes that can be created on a system. Includes system processes and user processes. Any value specified in /etc/system is used in the computation of maxuprc.
This value is also used in determining the size of several other system data structures. Other data structures where this parameter plays a role are as follows:
Determining the size of the directory name lookup cache (if ncsize 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 x86 platforms.
Signed integer
10 + (16 x maxusers)
266 to value of maxpid
No
Yes. The value is compared to maxpid and set to maxpid if it is larger. On x86 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 SPARC and x86 platforms use 65,534 as the platform value.
Changing this parameter is one of the steps necessary to enable support for more than 30,000 processes on a system.
Unstable
Specifies the maximum number of processes that can be created on a system by any one user.
Signed integer
max_nprocs - reserved_procs
1 to max_nprocs - reserved_procs
Processes
No
Yes. This value is compared to max_nprocs - reserved_procs and set to the smaller of the two values.
When you want to specify a hard limit for the number of processes a user can create that is less than the default value of however many processes the system can create. Attempting to exceed this limit generates the following warning messages on the console or in the messages file:
out of per-user processes for uid N
Unstable
Specifies the maximum number of supplemental groups per process.
Signed integer
16
0 to 1024
Groups
No
No
When you want to increase the maximum number of groups.
Keep in mind that if a particular user is assigned to more than 16 groups, the user might experience problems with AUTH_SYS credentials in an NFS environment.
Unstable