1. Overview of Oracle Solaris System Tuning
2. Oracle Solaris Kernel Tunable Parameters
4. Internet Protocol Suite Tunable Parameters
5. Network Cache and Accelerator Tunable Parameters
A. Tunable Parameters Change History
max_nprocs (Solaris 9 Releases)
ddi_msix_alloc_limit (Solaris 10 Release and OpenSolaris 2009.06 Release)
General I/O Tunable Parameters
rlim_fd_max (Solaris 8 Release)
General Kernel and Memory Parameters
zfs_arc_min (Solaris 10 Releases)
zfs_arc_max (Solaris 10 Releases)
noexec_user_stack (Solaris 9 Releases)
lwp_default_stksize (Solaris 9 Releases)
noexec_user_stack (Solaris 2.6, 7, and 8 Releases)
segkpsize (Solaris 9 12/02 Release)
fsflush and Related Parameters
dopageflush (Solaris 10 Releases)
Paging-Related Tunable Parameters
pages_pp_maximum (Solaris Releases Prior to Solaris 9 Releases)
General File System Parameters
ncsize (Solaris 9 and Previous Releases)
tmpfs:tmpfs_maxkmem (Solaris 10 Releases)
tmpfs:tmpfs_minfree (Solaris 8 Releases)
sun4u or sun4v Specific Parameters (Solaris 10 Releases)
default_tsb_size (Solaris 10 Releases)
enable_tsb_rss_sizing (Solaris 10 Releases)
tsb_rss_factor (Solaris 10 Releases)
nfs:nfs_write_error_interval (Solaris 9 8/03)
nfs:nfs_write_error_to_cons_only (Solaris 9 8/03)
nfs:nfs_disable_rddir_cache (Solaris 9 8/03)
nfs:nfs3_max_transfer_size (Solaris 9 8/03)
tcp_local_dack_interval (Solaris 10 Releases)
ip_forward_src_routed and ip6_forward_src_routed (Solaris 10 Release)
ip_multidata_outbound (Solaris 10 Release)
ip_multidata_outbound (Solaris 9 Release)
ip_squeue_fanout (Solaris 10 11/06 Release)
ip_squeue_worker_wait (Solaris 10 11/06 Release)
ip_soft_rings_cnt (Solaris 10 11/06 Release)
ip_squeue_write (Solaris 10 Release)
tcp_conn_hash_size (Solaris 9 Releases)
tcp_wscale_always (Solaris 9 Releases)
ipc_tcp_conn_hash_size (Solaris 9 Releases)
tcp_compression_enabled (Solaris 9 Releases)
ip_forwarding and ip6_forwarding (Solaris 9 Releases)
xxx:ip_forwarding (Solaris 9 Releases)
tcp_conn_req_max_q0 (Solaris 8 Release)
udp_xmit_hiwat (Solaris 9 Releases)
udp_recv_hiwat (Solaris 9 Releases)
udp_max_buf (Solaris 9 Releases)
Network Cache and Accelerator (NCA) Tunable Parameters
sq_max_size (Solaris 9 12/02 Release)
Parameters That Are Obsolete or Have Been Removed
cachefree (Solaris 8 Releases)
priority_paging (Solaris 8 Releases)
System V Message Queue Parameters
msgsys:msginfo_msgmni (Solaris 9 Releases)
msgsys:msginfo_msgtql (Solaris 9 Releases)
msgsys:msginfo_msgmnb (Solaris 9 Releases)
msgsys:msginfo_msgssz (Solaris 9 Releases)
msgsys:msginfo_msgmap (Solaris 9 Releases)
msgsys:msginfo_msgseg (Solaris 9 Releases)
msgsys:msginfo_msgmax (Solaris 9 Releases)
semsys:seminfo_semmni (Solaris 9 Releases)
semsys:seminfo_semmsl (Solaris 9 Releases)
semsys:seminfo_semopm (Solaris 9 Releases)
semsys:seminfo_semmns (Solaris 9 Releases)
semsys:seminfo_semmnu (Solaris 9 Releases)
semsys:seminfo_semume (Solaris 9 Releases)
semsys:seminfo_semvmx (Solaris 9 Releases)
semsys:seminfo_semaem (Solaris 9 Releases)
System V Shared Memory Parameters
shmsys:shminfo_shmmni (Solaris 9 Releases)
shmsys:shminfo_shmmax (Solaris 9 Releases)
The following section describes parameters that are obsolete or have been removed from more recent Solaris releases.
Obsolete in Solaris 9 and later releases.
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.
Obsolete
Obsolete in Solaris 9 and later releases.
This variable sets cachefree to 2 times lotsfree.
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.
Obsolete
Obsolete in the Solaris 10 release.
Signed integer
50
0 to MAXINT
No. Loaded into msgmni field of msginfo structure.
None
When msgget(2) calls return with an error of ENOSPC or at the recommendation of a software vendor.
Unstable
Obsolete in the Solaris 10 release.
Maximum number of messages that can be created. If a msgsnd call attempts to exceed this limit, the request is deferred until a message header is available. Or, if the request has set the IPC_NOWAIT flag, the request fails with the error EAGAIN.
Signed integer
40
0 to MAXINT
No. Loaded into msgtql field of msginfo structure.
None
When msgsnd() calls block or return with error of EGAIN, or at the recommendation of a software vendor.
Unstable
Obsolete in the Solaris 10 release.
Maximum number of bytes that can be on any one message queue.
Unsigned long
4096
0 to amount of physical memory
Bytes
No. Loaded into msgmnb field of msginfo structure.
None
When msgsnd() calls block or return with an error of EGAIN, or at the recommendation of a software vendor.
Unstable
Removed in the Solaris 10 release.
Specifies size of chunks system uses to manage space for message buffers.
Signed integer
40
0 to MAXINT
No. Loaded into msgtql field of msginfostructure.
The space consumed by the maximum number of data structures that would be created to support the messages and queues is compared to 25% of the available kernel memory at the time the module is loaded. If the number is too big, the message queue module refuses to load and the facility is unavailable. This computation does include the space that might be consumed by the messages. This situation occurs only when the module is first loaded.
When the default value is not enough. Generally changed at the recommendation of software vendors.
Obsolete
Removed in the Solaris 10 release.
Number of messages the system supports.
Signed integer
100
0 to MAXINT
No
The space consumed by the maximum number of data structures that would be created to support the messages and queues is compared to 25% of the available kernel memory at the time the module is loaded. If the number is too big, the message queue module refuses to load and the facility is unavailable. This computation does include the space that might be consumed by the messages. This situation occurs only when the module is first loaded.
When the default value is not enough. Generally changed at the recommendation of software vendors.
Obsolete
Removed in the Solaris 10 release.
Number of msginfo_msgssz segments the system uses as a pool for available message memory. Total memory available for messages is msginfo_msgseg * msginfo_msgssz.
Signed short
1024
0 to 32,767
No
The space consumed by the maximum number of data structures that would be created to support the messages and queues is compared to 25% of the available kernel memory at the time the module is loaded. If the number is too big, the message queue module refuses to load and the facility is unavailable. This computation does not include the space that might be consumed by the messages. This situation occurs only when the module is first loaded.
When the default value is not enough. Generally changed at the recommendation of software vendors.
Obsolete
Removed in the Solaris 10 release.
Unsigned long
2048
0 to amount of physical memory
Bytes
No. Loaded into msgmax field of msginfo structure.
None
When msgsnd(2) calls return with error of EINVAL or at the recommendation of a software vendor.
Unstable
Obsolete in the Solaris 10 release.
Signed integer
10
1 to 65,535
No
Compared to SEMA_INDEX_MAX (currently 65,535) and reset to that value if larger. A warning message is written to the console, messages file, or both.
When the default number of sets is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to create more sets than are currently configured. Instead, the application receives a return code of ENOSPC from a semget call.
For more information, see semget(2).
Unstable
Obsolete in the Solaris 10 release.
Specifies the maximum number of System V semaphores per semaphore identifier.
Signed integer
25
1 to MAXINT
No
The amount of space that could possibly be consumed by the semaphores and their supporting data structures is compared to 25 percent of the kernel memory available at the time the module is first loaded. If the memory threshold is exceeded, the module refuses to load and the semaphore facility is not available.
When the default value is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to create more semaphores in a set than are currently configured. The application sees a return code of EINVAL from a semget(2) call.
Unstable
Obsolete in the Solaris 10 release.
Specifies the maximum number of System V semaphore operations per semop call. This parameter refers to the number of sembufs in the sops array that is provided to the semop() system call. For more information, see semop(2).
Signed integer
10
1 to MAXINT
No
The amount of space that could possibly be consumed by the semaphores and their supporting data structures is compared to 25 percent of the kernel memory available at the time the module is first loaded. If the memory threshold is exceeded, the module refuses to load and the semaphore facility is not available.
When the default value is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to perform more semaphore operations in a single semop call than are currently allowed. Instead, the application receives a return code of E2BIG from a semop() call.
Unstable
Removed in the Solaris 10 release.
Signed integer
60
1 to MAXINT
No
The amount of space that could possibly be consumed by the semaphores and their supporting data structures is compared to 25% of the kernel memory available at the time the module is first loaded. If the memory threshold is exceeded, the module refuses to load and the semaphore facility is not available.
When the default number of semaphores is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to create more semaphores than are currently configured. The application sees a return code of ENOSPC from a semget(2) call.
Unstable
Removed in the Solaris 10 release.
Total number of undo structures supported by the System V semaphore system.
Signed integer
30
1 to MAXINT
No
The amount of space that could possibly be consumed by the semaphores and their supporting data structures is compared to 25% of the kernel memory available at the time the module is first loaded. If the memory threshold is exceeded, the module refuses to load and the semaphore facility is not available.
When the default value is not enough. Generally changed at the recommendation of software vendors. No error message is displayed when an attempt is made to perform more undo operations than are currently configured. The application sees a return value of ENOSPC from a semop(2) call when the system runs out of undo structures.
Unstable
Removed in the Solaris 10 release.
Maximum number of System V semaphore undo structures that can be used by any one process.
Signed integer
10
1 to MAXINT
No
The amount of space that could possibly be consumed by the semaphores and their supporting data structures is compared to 25% of the kernel memory available at the time the module is first loaded. If the memory threshold is exceeded, the module refuses to load and the semaphore facility is not available.
When the default value is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to perform more undo operations than are currently configured. The application sees a return code of EINVAL from a semop(2) call.
Unstable
Removed in the Solaris 10 release.
Unsigned short
32,767
1 to 65,535
No
None
When the default value is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when the maximum value is exceeded. The application sees a return code of ERANGE from a semop(2) call.
Unstable
Removed in the Solaris 10 release.
Maximum value that a semaphore's value in an undo structure can be set to.
Unsigned short
16,384
1 to 65,535
No
None
When the default value is not enough. Generally changed at the recommendation of software vendors. No error messages are displayed when an attempt is made to perform more undo operations than are currently configured. The application sees a return code of EINVAL from a semop(2) call.
Unstable
Obsolete in the Solaris 10 release.
System wide limit on number of shared memory segments that can be created.
Signed integer
100
0 to MAXINT
No. Loaded into shmmni field of shminfo structure.
The amount of space consumed by the maximum possible number of data structures to support System V shared memory is checked against 25% of the currently available kernel memory at the time the module is loaded. If the memory consumed is too large, the attempt to load the module fails.
When the system limits are too low. Generally changed on the recommendation of software vendors.
Unstable
Obsolete in the Solaris 10 release.
Maximum size of system V shared memory segment that can be created. This parameter is an upper limit that is checked before the application sees if it actually has the physical resources to create the requested memory segment.
Attempts to create a shared memory section whose size is zero or whose size is larger than the specified value will fail with an EINVAL error.
This parameter specifies only the largest value the operating system can accept for the size of a shared memory segment. Whether the segment can be created depends entirely on the amount of swap space available on the system and, for a 32-bit process, whether there is enough space available in the process's address space for the segment to be attached.
Unsigned long
8,388,608
0 - MAXUINT32 on 32-bit systems, 0 – MAXUINT64 on 64-bit systems
Bytes
No. Loaded into shmmax field of shminfo structure.
None
When the default value is too low. Generally changed at the recommendation of software vendors, but unless the size of a shared memory segment needs to be constrained, setting this parameter to the maximum possible value has no side effects.
Unstable
Obsolete in the Solaris 9 release. Variable is present in kernel for compatibility reasons but is no longer used.
Obsolete in the Solaris 9 release. Variable is present in kernel for compatibility reasons but is no longer used.