JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris 11.1 Tunable Parameters Reference Manual     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

1.  Overview of Oracle Solaris System Tuning

2.  Oracle Solaris Kernel Tunable Parameters

Where to Find Tunable Parameter Information

General Kernel and Memory Parameters

physmem

default_stksize

lwp_default_stksize

logevent_max_q_sz

segkpsize

noexec_user_stack

fsflush and Related Parameters

fsflush

tune_t_fsflushr

autoup

dopageflush

doiflush

Process-Sizing Parameters

maxusers

reserved_procs

pidmax

max_nprocs

maxuprc

ngroups_max

Paging-Related Parameters

lotsfree

desfree

minfree

throttlefree

pageout_reserve

pages_pp_maximum

tune_t_minarmem

fastscan

slowscan

min_percent_cpu

handspreadpages

pages_before_pager

maxpgio

Swapping-Related Parameters

swapfs_reserve

swapfs_minfree

Kernel Memory Allocator

kmem_flags

kmem_stackinfo

General Driver Parameters

moddebug

ddi_msix_alloc_limit

Network Driver Parameters

igb Parameters

mr_enable

intr_force

ixgbe Parameters

tx_queue_number

rx_queue_number

intr_throttling

rx_limit_per_intr

tx_ring_size

rx_ring_size

tx_copy_threshold

rx_copy_threshold

General I/O Parameters

maxphys

rlim_fd_max

rlim_fd_cur

General File System Parameters

ncsize

dnlc_dir_enable

dnlc_dir_min_size

dnlc_dir_max_size

dnlc_dircache_percent

TMPFS Parameters

tmpfs:tmpfs_maxkmem

tmpfs:tmpfs_minfree

Pseudo Terminals

pt_cnt

pt_pctofmem

pt_max_pty

STREAMS Parameters

nstrpush

strmsgsz

strctlsz

System V Message Queues

System V Semaphores

System V Shared Memory

segspt_minfree

Scheduling

disp_rechoose_interval

Timers

hires_tick

timer_max

SPARC System Specific Parameters

tsb_alloc_hiwater_factor

default_tsb_size

enable_tsb_rss_sizing

tsb_rss_factor

Locality Group Parameters

lpg_alloc_prefer

lgrp_mem_pset_aware

3.  Oracle Solaris ZFS Tunable Parameters

4.  NFS Tunable Parameters

5.  Internet Protocol Suite Tunable Parameters

6.  System Facility Parameters

A.  Tunable Parameters Change History

B.  Revision History for This Manual

Index

Process-Sizing Parameters

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.

maxusers

Description

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)

Data Type

Signed integer

Default

Lesser of the amount of memory in MB or 2048, and the greater of that value and nCPUs x 8

Range

1 to the greater of 2048 or nCPUs x 8, based on the size of physical memory, if not set in the /etc/system file

1 to the greater of 4096 or the nCPUs x 8, if set in the /etc/system file

Units

Users

Dynamic?

No. After computation of dependent parameters is done, maxusers is never referenced again.

Validation

If the value is greater than the maximum allowed, it is reset to the maximum. A message to that effect is displayed.

When to Change

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.

Commitment Level

Unstable

Change History

For information, see maxusers.

reserved_procs

Description

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).

Data Type

Signed integer

Default

5

Range

5 to MAXINT

Units

Processes

Dynamic?

No. Not used after the initial parameter computation.

Validation

Any /etc/system setting is honored.

Commitment Level

Unstable

When to Change

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.

pidmax

Description

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.

Data Type

Signed integer

Default

3,000

Range

5 to 999,999

Units

Processes

Dynamic?

No. Used only at boot time to set the value of pidmax.

Validation

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.

Implicit

max_nprocs range checking ensures that max_nprocs is always less than or equal to this value.

When to Change

Required to enable support for more than 30,000 processes on a system. See also max_nprocs.

Commitment Level

Unstable

Change History

For information, see pidmax.

max_nprocs

Description

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

Data Type

Signed integer

Default

10 + (16 x maxusers) if maxusers is set in the /etc/system file

The larger of 30,000 or 10 + (128 x number of CPUs), if maxusers is not set in the /etc/system file

Range

26 to value of maxpid

Dynamic?

No

Validation

Yes. If the value exceeds maxpid, it is set to maxpid .

When to Change

Changing this parameter is one of the steps necessary to enable support for more than 30,000 processes on a system.

Commitment Level

Unstable

Change History

For information, see max_nprocs.

maxuprc

Description

Specifies the maximum number of processes that can be created on a system by any one user.

Data Type

Signed integer

Default

max_nprocs - reserved_procs

Range

1 to max_nprocs - reserved_procs

Units

Processes

Dynamic?

No

Validation

Yes. This value is compared to max_nprocs - reserved_procs and set to the smaller of the two values.

When to Change

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
Commitment Level

Unstable

ngroups_max

Description

Specifies the maximum number of supplemental groups per process.

Data Type

Signed integer

Default

16

Range

0 to 1024

Units

Groups

Dynamic?

No

Validation

Yes. If ngroups_max is set to an invalid value, it is automatically reset to the closest legal value. For example, if it is set to less than zero, it is reset to 0. If it is set to greater than 1024, it is reset to 1024.

When to Change

Review the following considerations if you are using NFS AUTH_SYS authentication and you want to increase the default ngroups_max value:

  1. If ngroups_max is set to 16 or if the client's AUTH_SYS credential that is provided has 15 or fewer groups, the client's group information is used.

  2. If ngroups_max is set to greater than 16 and the client's AUTH_SYS credential from the name server contains exactly 16 groups, the maximum allowed, the NFS server consults the name server and matches the client's UID to a user name. Then, the name server computes a list of groups to which the user belongs.

Commitment Level

Unstable

Change History

For information, see ngroups_max.