Solaris Tunable Parameters Reference Manual

Appendix A Tunable Parameters Change History

This chapter describes the change history of specific tunable parameters. If a parameter is in this section, it has changed from a previous release. Parameters whose functionality has been removed are listed also.

Kernel Parameters

Process-Sizing Tunables

max_nprocs (Solaris 9 Releases)

The Solaris 10 description section was updated by removing the text “sun4m.”

General Driver Parameter

ddi_msix_alloc_limit (SXCE and Open Solaris 2009.06 Releases)

This parameter is new in SXCE, build 111 or Open Solaris 2009.06 release. For more information, see ddi_msix_alloc_limit.

Network Driver Parameters

igb Parameters (SXCE and Open Solaris 2009.06 Releases)

The igb network driver parameters are provided in SXCE, build 111 or Open Solaris 2009.06 release. For more information, see .

ixgbe Parameters (SXCE and Open Solaris 2009.06 Releases)

The ixgbe network driver parameters are provided in SXCE, build 111 or Open Solaris 2009.06 release. For more information, see ixgbe Parameters.

General I/O Tunable Parameters

maxphys (Solaris 10 Releases)

The default value is updated to include sun4v systems. For more information, see maxphys.

maxphys (Solaris 9 Releases)

The text “126,976 (sun4m)” was removed from the Solaris 10 maxphys default section.

rlim_fd_max (Solaris 8 Release)

In the Solaris 8 version, the default is 1024. In later Solaris releases, the default is 65,536.

General Kernel and Memory Parameters

noexec_user_stack (Solaris 9 Releases)

The Solaris 10 description section was updated by removing the text “and sun4m” and adding the text “64–bit SPARC and AMD64.”

lwp_default_stksize (Solaris 9 Releases)

The Solaris 10 description section was updated by adding default and maximum values for AMD64.

The Solaris 10 default value for SPARC platforms was changed to 24,576.

noexec_user_stack (Solaris 2.6, 7, and 8 Releases)

The Solaris 9 description section was updated by removing the text “and sun4d.”

segkpsize (Solaris 9 12/02 Release)

In previous Solaris 9 releases, units were incorrectly identified as Mbytes instead of 8-Kbyte pages. In addition, the following text is removed from the range and default descriptions in the Solaris 10 release because this parameter is only available on systems running 64-bit kernels:

32-bit kernels, 512 Mbytes

fsflush and Related Parameters

dopageflush (Solaris 10 Releases)

In the Solaris Express Community Edition release, the description was clarified by including that number of physical memory pages are examined.

Paging-Related Tunable Parameters

maxpgio (Solaris 10 Releases)

In the Solaris 10 versions, the range value was incorrectly documented as 1 to 1024. The actual range depends on system architecture and I/O subsystems. For more information, see maxpgio.

pages_pp_maximum (Solaris Releases Prior to Solaris 9 Releases)

In the Solaris 8 versions, the default description is as follows:

Maximum of the triplet (200, tune_t_minarmem + 100, [10% of memory available at boot time])

General File System Parameters

ncsize (Solaris 9 and Previous Releases)

In the Solaris 9 release and previous releases, the nfs:nrnode parameter was incorrectly identified as nfs:nfs_rnode in the when to change description.

ncsize (Solaris 10 Release)

In the Solaris 10 release, the default value of the ncsize parameter was incorrectly described as follows:

4 x (v.v_proc + maxusers) + 320 / 100

The correct default value is as follows:

(4 x (v.v_proc + maxusers) + 320) + (4 x (v.v_proc + maxusers) + 320 / 100

For more information, see ncsize.

UFS Tunable Parameters

bufhwm (Solaris 9 Releases)

This parameter information changed significantly in the Solaris 10 release. Please see bufhwm and bufhwm_pct for more information.

Description

Maximum amount of memory for caching I/O buffers. The buffers are used for writing file system metadata (superblocks, inodes, indirect blocks, and directories). Buffers are allocated as needed until the amount to be allocated would exceed bufhwm. At this point, enough buffers are reclaimed to satisfy the request.

For historical reasons, this parameter does not require the ufs: prefix.

Data Type

Signed integer

Default

2% of physical memory

Range

80 Kbytes to 20% of physical memory

Units

Kbytes

Dynamic?

No. Value is used to compute hash bucket sizes and is then stored into a data structure that adjusts the value in the field as buffers are allocated and deallocated. Attempting to adjust this value without following the locking protocol on a running system can lead to incorrect operation.

Validation

If bufhwm is less than 80 Kbytes or greater than the lesser of 20% of physical memory or twice the current amount of kernel heap, it is reset to the lesser of 20% of physical memory or twice the current amount of kernel heap. The following message appears on the system console and in the /var/adm/messages file.


"binit: bufhwm out of range (value attempted). Using N."

Value attempted refers to the value entered in /etc/system or by using the kadb -d command. N is the value computed by the system based on available system memory.

When to Change

Since buffers are only allocated as they are needed, the overhead from the default setting is the allocation of a number of control structures to handle the maximum possible number of buffers. These structures consume 52 bytes per potential buffer on a 32–bit kernel and 104 bytes per potential buffer on a 64–bit kernel. On a 512 Mbyte 64–bit kernel this consumes 104*10144 bytes, or 1 Mbyte. The header allocations assumes buffers are 1 Kbyte in size, although in most cases, the buffer size is larger.

The amount of memory, which has not been allocated in the buffer pool, can be found by looking at the bfreelist structure in the kernel with a kernel debugger. The field of interest in the structure is bufsize, which is the possible remaining memory in bytes. Looking at it with the buf macro by using mdb:


# mdb -kLoading modules: [ unix krtld genunix ip nfs ipc ]
> bfreelist$<buf
bfreelist:
[ elided ]
bfreelist + 0x78:	bufsize			[ elided ]
				 	      75734016

bufhwm on this system, with 6 Gbytes of memory, is 122277. It is not directly possible to determine the number of header structures used since the actual buffer size requested is usually larger than 1 Kbyte. However, some space might be profitably reclaimed from control structure allocation for this system.

The same structure on the 512 Mbyte system shows that only 4 Kbytes of 10144 Kbytes has not been allocated. When the biostats kstat is examined with kstat -n biostats, it is seen that the system had a reasonable ratio of buffer_cache_hits to buffer_cache_lookups as well. This indicates that the default setting is reasonable for that system.

Commitment Level

Unstable

TMPFS Parameters

tmpfs:tmpfs_maxkmem (Solaris 10 Releases)

The range description is updated to include sun4v systems. For more information, see tmpfs:tmpfs_maxkmem.

tmpfs:tmpfs_minfree (Solaris 8 Releases)

In the Solaris 8 versions, the units was incorrectly described as “Bytes,” instead of “Pages.”

sun4u or sun4v Specific Parameters (Solaris 10 Releases)

The title of the Sun-4u Specific Parameters section was revised in the Solaris 10 8/07 release to include sun4v systems.

default_tsb_size (Solaris 10 Releases)

The default description has changed. For more information, see default_tsb_size.

enable_tsb_rss_sizing (Solaris 10 Releases)

The description and default and range values have changed. For more information, see enable_tsb_rss_sizing.

tsb_rss_factor (Solaris 10 Releases)

The when to change example text was changed to this:

For example, changing tsb_rss_factor to 256 (effectively, 50%) instead of 384 (effectively, 75%) might help eliminate virtual address conflicts in the TSB in some cases, but will use more kernel memory, particularly on a heavily loaded system.

Solaris Volume Manager Parameters

md_mirror:md_resync_bufsz

In the Solaris Express release, the default value was increased to 1024 blocks from 128 blocks.

NFS Tunable Parameters

nfs:nfs3_nra (Solaris 10)

The default value was incorrectly documented in the Solaris 10 release. The default value is 4.

nfs:nrnode (Solaris 9 8/03)

The Solaris 10 description was updated to include the text “NFS version 4 client.”

nfs:nfs_write_error_interval (Solaris 9 8/03)

The Solaris 10 description was updated to include the text “NFS version 4 client.”

nfs:nfs_write_error_to_cons_only (Solaris 9 8/03)

The Solaris 10 description was updated to include the text “NFS version 4 client.”

nfs:nfs_disable_rddir_cache (Solaris 9 8/03)

The Solaris 10 when to change text was updated to include the text “NFS version 4 client.”

nfs:nfs3_max_transfer_size (Solaris 9 8/03)

The Solaris 10 default description was updated to 1,048,576 (1 Mbyte) from 32, 768 (32 Kbytes).

TCP/IP Tunable Parameters

tcp_local_dack_interval (Solaris 10 Releases)

The range of this parameter was incorrectly documented in previous Solaris releases. The correct range is 10 milliseconds to 1 minute.

ip_forward_src_routed and ip6_forward_src_routed (Solaris 10 Release)

The default value of these parameters was incorrectly documented in the Solaris 9 and Solaris 10 releases. The correct default value is disabled.

Description

Controls whether IPv4 or IPv6 forwards packets with source IPv4 routing options or IPv6 routing headers.

Default

1 (enabled)

ip_multidata_outbound (Solaris 10 Release)

This parameter was enhanced in the Solaris Express 12/05 release to deliver IP fragments in batches to the network driver. For more information, see ip_multidata_outbound.

Description

Enables the network stack to send more than one packet at one time to the network device driver during transmission.

Enabling this parameter reduces the per-packet processing costs by improving host CPU utilization, network throughput, or both.

The multidata transmit (MDT) feature is only effective for device drivers that support this feature.

See also tcp_mdt_max_pbufs.

Default

1 (Enabled)

Range

0 (disabled) or 1 (enabled)

Dynamic?

Yes

When to Change

If you do not want this parameter enabled for debugging purposes or for any other reasons, disable it.

Commitment Level

Unstable

Change History

For information, see ip_multidata_outbound (Solaris 9 Release).

ip_multidata_outbound (Solaris 9 Release)

This parameter information changed significantly in releases after the Solaris 9 8/03 release. Please see ip_multidata_outbound for more information.

Description

This parameter enables the network stack to send more than one packet at one time to the network device driver during transmission.

Enabling this parameter reduces the per-packet processing costs by improving the host CPU utilization and/or network throughput.

The multidata transmit (MDT) feature is only effective for device drivers that support this feature.

The following parameter must be enabled in the /etc/system file to use the MDT parameter:

set ip:ip_use_dl_cap = 0x1

Default

Disabled

Range

0 (disabled), 1 (enabled)

Dynamic?

Yes

When to Change

This feature can be enabled at any time to allow for improved system performance with the following cautions:

  • Enabling this feature might change the appearance of any packets between the IP layer and the DLPI provider. So, any third-party STREAMS module that is dynamically inserted between the IP layer and the DLPI provider by using ifconfig's modinsert feature, which doesn't understand the MDT STREAMS data type, might not work.

    Modules that are inserted between the IP and the DLPI provider with the autopush(1m) mechanism might not work as well.

  • Keep this feature disabled when a STREAMS module is not MDT aware. For example, the public domain utilities such as ipfilter, Checkpoint Firewall-1, and so on, are not MDT aware.

Commitment Level

Unstable

ip_squeue_fanout (Solaris 10 11/06 Release)

Zone configuration information was added in the Solaris 10 8/07 release. For more information, see ip_squeue_fanout.

ip_squeue_worker_wait (Solaris 10 11/06 Release)

Zone configuration information was added in the Solaris 10 8/07 release. For more information, see ip_squeue_worker_wait In addition, this parameter was moved to TCP/IP Parameters Set in the /etc/system File.

ip_soft_rings_cnt (Solaris 10 11/06 Release)

Zone configuration information was added in the Solaris 10 8/07 release. For more information, see ip_soft_rings_cnt.

ip_squeue_write (Solaris 10 Release)

This parameter was incorrectly documented in the Solaris 10 release. It has been removed.

tcp_conn_hash_size (Solaris 9 Releases)

This parameter was removed in the Solaris 10 release.

Description

Controls the hash table size in the TCP module for all TCP connections.

Data Type

Signed integer

Default

512

Range

512 to 1,073,741,824

Implicit

The value should be a power of 2.

Dynamic?

No. The parameter can only be changed at boot time.

Validation

If you set the parameter to a value that is not a power of 2, it is rounded up to the nearest power of 2.

When to Change

If the system consistently has tens of thousands of TCP connections, increase the value accordingly. With the default value, TCP performs well up to a few thousand active connections. Note that increasing the hash table size means more memory consumption so set an appropriate value to avoid wasting memory unnecessarily.

Commitment Level

Unstable

tcp_wscale_always (Solaris 9 Releases)

The default value of this parameter was changed to enabled in the Solaris 10 release.

Description

When this parameter is enabled, which is the default setting, TCP always sends a SYN segment with the window scale option, even if the window scale option value is 0. Note that if TCP receives a SYN segment with the window scale option, even if the parameter is disabled, TCP responds with a SYN segment with the window scale option. In addition, the option value is set according to the receive window size.

Refer to RFC 1323 for the window scale option.

Default

0 (disabled)

Range

0 (disabled) or 1 (enabled)

Dynamic?

Yes

When to Change

If there is an interoperability problem with an old TCP stack that does not support the window scale option, disable this parameter.

Commitment Level

Unstable

ipc_tcp_conn_hash_size (Solaris 9 Releases)

This parameter was removed in the Solaris 10 release.

Description

Controls the hash table size in an IP module for all active (in ESTABLISHED state) TCP connections.

Data Type

Unsigned integer

Default

512

Range

512 to 2,147,483,648

Implicit

It should be a power of two.

Dynamic?

No. This parameter can only be changed at boot time.

Validation

If you set the parameter to a value that is not a power of 2, it is rounded up to the nearest power of two.

When to Change

If the system consistently has tens of thousands of active TCP connections, increase the value accordingly. With the default value, the system performs well up to a few thousand active connections. Note that increasing the hash table size means more memory consumption so set an appropriate value to avoid wasting memory unnecessarily.

Commitment Level

Unstable

tcp_compression_enabled (Solaris 9 Releases)

This parameter was removed in the Solaris 10 release.

Description

If set to 1, protocol control blocks of TCP connections in TIME-WAIT state are compressed to reduce memory usage. If set to 0, no compression is done. See tcp_time_wait_interval also.

Default

1 (enabled)

Range

0 (disabled), 1 (enabled)

Dynamic?

Yes

When to Change

Do not turn off the compression mechanism.

Commitment Level

Unstable

ip_forwarding and ip6_forwarding (Solaris 9 Releases)

These parameters are obsolete in the Solaris 10 release.

Description

Controls whether IP does IPv4 or IPv6 forwarding between interfaces. See also xxx:ip_forwarding (Solaris 9 Releases).

Default

0 (disabled)

Range

0 (disabled) or 1 (enabled)

Dynamic?

Yes

When to Change

If IP forwarding is needed, enable it.

Commitment Level

Unstable

xxx:ip_forwarding (Solaris 9 Releases)

This parameter is obsolete in the Solaris 10 release.

Description

Enables IPv4 forwarding for a particular xxx interface. The exact name of the parameter is interface-name:ip_forwarding. For example, two interfaces are hme0 and hme1. Here are their corresponding parameter names:

hme0:ip_forwarding and hme1:ip_forwarding

Default

0 (disabled)

Range

0 (disabled) or 1 (enabled)

Dynamic?

Yes

When to Change

If you need IPv4 forwarding, use this parameter to enable forwarding on a per-interface basis.

Commitment Level

Unstable

tcp_conn_req_max_q0 (Solaris 8 Release)

The when to change text was revised in later Solaris releases from this:

When to Change

For applications, such as web servers that might receive excessive connection requests, you can increase the default value to match the incoming rate.

The following explains the relationship between tcp_conn_req_max_q0 and the maximum number of pending connections for each socket.

When a connection request is received, TCP first checks if the number (N) of pending TCP connections (three-way handshake is done) waiting to be accepted exceeds the maximum for the listener. If the connections are excessive, the request is denied. If the number of connections is allowable, then TCP checks if the number of incomplete pending TCP connections exceeds the sum of N and tcp_conn_req_max_q0. If it does not, the request is accepted. Otherwise, the oldest incomplete pending TCP request is dropped.

to this:

When to Change

For applications, such as web servers that might receive excessive connection requests, you can increase the default value to match the incoming rate.

The following explains the relationship between tcp_conn_req_max_q0 and the maximum number of pending connections for each socket.

When a connection request is received, TCP first checks if the number of pending TCP connections (three-way handshake is done) waiting to be accepted exceeds the maximum (N) for the listener. If the connections are excessive, the request is denied. If the number of connections is allowable, then TCP checks if the number of incomplete pending TCP connections exceeds the sum of N and tcp_conn_req_max_q0. If it does not, the request is accepted. Otherwise, the oldest incomplete pending TCP request is dropped.

UDP Tunable Parameters

udp_xmit_hiwat (Solaris 9 Releases)

The default value and range of values changed in the Solaris 10 release.

Default

8192 bytes

Range

4096 to 65,536 bytes

udp_recv_hiwat (Solaris 9 Releases)

The default value and range of values changed in the Solaris 10 release.

Default

8192 bytes

Range

4096 to 65,536 bytes

udp_max_buf (Solaris 9 Releases)

The default value changed in the Solaris 10 release.

Default

262, 144 bytes

Network Cache and Accelerator (NCA) Tunable Parameters

sq_max_size (Solaris 9 12/02 Release)

This parameter information changed significantly in later Solaris releases. Please see sq_max_size for more information.

Description

The depth of the syncq (number of messages) before a destination streams queue generates a QFULL message.

Default

2 messages

Range

1 to 0 (unlimited)

Dynamic?

No

When to Change

When NCA is running on a system with a lot of memory, increase this parameter to allow drivers to queue more packets of data. If a server is under heavy load, increase this parameter so modules and drivers may process more data without dropping packets or getting backlogged.

Commitment Level

Unstable

Parameters That Are Obsolete or Have Been Removed

The following section describes parameters that are obsolete or have been removed from more recent Solaris releases.

Paging-Related Tunables

cachefree (Solaris 8 Releases)

Obsolete in Solaris 9 and later 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

priority_paging (Solaris 8 Releases)

Obsolete in Solaris 9 and later releases.

Description

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.


Commitment Level

Obsolete

tune_t_gpgslo (Solaris 7 Releases)

Description

Obsolete in the Solaris 8 release. Variable left in place for compatibility reasons.

tune_t_minasmem (Solaris 7 Releases)

Description

Obsolete in the Solaris 8 release. Variable left in place for compatibility reasons.

System V Message Queue Parameters

msgsys:msginfo_msgmni (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

Maximum number of message queues that can be created.

Data Type

Signed integer

Default

50

Range

0 to MAXINT

Dynamic?

No. Loaded into msgmni field of msginfo structure.

Validation

None

When to Change

When msgget(2) calls return with an error of ENOSPC or at the recommendation of a software vendor.

Commitment Level

Unstable

msgsys:msginfo_msgtql (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

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.

Data Type

Signed integer

Default

40

Range

0 to MAXINT

Dynamic?

No. Loaded into msgtql field of msginfo structure.

Validation

None

When to Change

When msgsnd() calls block or return with error of EGAIN, or at the recommendation of a software vendor.

Commitment Level

Unstable

msgsys:msginfo_msgmnb (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

Maximum number of bytes that can be on any one message queue.

Data Type

Unsigned long

Default

4096

Range

0 to amount of physical memory

Units

Bytes

Dynamic?

No. Loaded into msgmnb field of msginfo structure.

Validation

None

When to Change

When msgsnd() calls block or return with an error of EGAIN, or at the recommendation of a software vendor.

Commitment Level

Unstable

msgsys:msginfo_msgssz (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Specifies size of chunks system uses to manage space for message buffers.

Data Type

Signed integer

Default

40

Range

0 to MAXINT

Dynamic?

No. Loaded into msgtql field of msginfostructure.

Validation

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 to Change

When the default value is not enough. Generally changed at the recommendation of software vendors.

Commitment Level

Obsolete

msgsys:msginfo_msgmap (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Number of messages the system supports.

Data Type

Signed integer

Default

100

Range

0 to MAXINT

Dynamic?

No

Validation

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 to Change

When the default value is not enough. Generally changed at the recommendation of software vendors.

Commitment Level

Obsolete

msgsys:msginfo_msgseg (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

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.

Data Type

Signed short

Default

1024

Range

0 to 32,767

Dynamic?

No

Validation

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 to Change

When the default value is not enough. Generally changed at the recommendation of software vendors.

Commitment Level

Obsolete

msgsys:msginfo_msgmax (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Maximum size of System V message.

Data Type

Unsigned long

Default

2048

Range

0 to amount of physical memory

Units

Bytes

Dynamic?

No. Loaded into msgmax field of msginfo structure.

Validation

None

When to Change

When msgsnd(2) calls return with error of EINVAL or at the recommendation of a software vendor.

Commitment Level

Unstable

System V Semaphore Parameters

semsys:seminfo_semmni (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

Specifies the maximum number of semaphore identifiers.

Data Type

Signed integer

Default

10

Range

1 to 65,535

Dynamic?

No

Validation

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 to Change

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

Commitment Level

Unstable

semsys:seminfo_semmsl (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

Specifies the maximum number of System V semaphores per semaphore identifier.

Data Type

Signed integer

Default

25

Range

1 to MAXINT

Dynamic?

No

Validation

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 to Change

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.

Commitment Level

Unstable

semsys:seminfo_semopm (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

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

Data Type

Signed integer

Default

10

Range

1 to MAXINT

Dynamic?

No

Validation

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 to Change

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.

Commitment Level

Unstable

semsys:seminfo_semmns (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Maximum number of System V semaphores on the system.

Data Type

Signed integer

Default

60

Range

1 to MAXINT

Dynamic?

No

Validation

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 to Change

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.

Commitment Level

Unstable

semsys:seminfo_semmnu (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Total number of undo structures supported by the System V semaphore system.

Data Type

Signed integer

Default

30

Range

1 to MAXINT

Dynamic?

No

Validation

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 to Change

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.

Commitment Level

Unstable

semsys:seminfo_semume (Solaris 9 Releases)

Description

Removed in the Solaris 10 release.

Maximum number of System V semaphore undo structures that can be used by any one process.

Data Type

Signed integer

Default

10

Range

1 to MAXINT

Dynamic?

No

Validation

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 to Change

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.

Commitment Level

Unstable

semsys:seminfo_semvmx (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Maximum value a semaphore can be set to.

Data Type

Unsigned short

Default

32,767

Range

1 to 65,535

Dynamic?

No

Validation

None

When to Change

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.

Commitment Level

Unstable

semsys:seminfo_semaem (Solaris 9 Releases)

Removed in the Solaris 10 release.

Description

Maximum value that a semaphore's value in an undo structure can be set to.

Data Type

Unsigned short

Default

16,384

Range

1 to 65,535

Dynamic?

No

Validation

None

When to Change

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.

Commitment Level

Unstable

semsys:seminfo_semmap (Solaris 7 Releases)

Obsolete in the Solaris 8 release. Variable is present in kernel for compatibility reasons but is no longer used.

semsys:seminfo_semusz (Solaris 7 Releases)

Obsolete in the Solaris 8 release. Any values entered are ignored.

System V Shared Memory Parameters

shmsys:shminfo_shmmni (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

System wide limit on number of shared memory segments that can be created.

Data Type

Signed integer

Default

100

Range

0 to MAXINT

Dynamic?

No. Loaded into shmmni field of shminfo structure.

Validation

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 to Change

When the system limits are too low. Generally changed on the recommendation of software vendors.

Commitment Level

Unstable

shmsys:shminfo_shmmax (Solaris 9 Releases)

Obsolete in the Solaris 10 release.

Description

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.

Data Type

Unsigned long

Default

8,388,608

Range

0 - MAXUINT32 on 32-bit systems, 0 – MAXUINT64 on 64-bit systems

Units

Bytes

Dynamic?

No. Loaded into shmmax field of shminfo structure.

Validation

None

When to Change

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.

Commitment Level

Unstable

shmsys:shminfo_shmmin (Solaris 8 Release)

Obsolete in the Solaris 9 release. Variable is present in kernel for compatibility reasons but is no longer used.

shmsys:shminfo_shmseg (Solaris 8 Release)

Obsolete in the Solaris 9 release. Variable is present in kernel for compatibility reasons but is no longer used.

NFS Module Parameters

nfs:nfs_32_time_ok (Solaris 7)

Obsolete in the Solaris 8 release.