Solaris Tunable Parameters Reference Manual

General I/O

rlim_fd_cur (Pre-Solaris 7 and the Solaris 7 Release)

Description

"Soft" limit on file descriptors that a single process can have open. A process might adjust its file descriptor limit to any value up to the "hard" limit defined by rlim_fd_max by using the setrlimit() call or issuing the limit command in whatever shell it is running. You do not require superuser privilege to adjust the limit to any value less than or equal to the hard limit.

Data Type

Signed integer

Default

64

Range

1 to MAXINT

Units

File descriptors

Dynamic?

No. Loaded into rlimits structure.

Validation

Compared to rlim_fd_max and if rlim_fd_cur is greater than rlim_fd_max, rlim_fd_cur is reset to rlim_fd_max.

When to Change

When the default number of open files for a process is not enough. Increasing this value means only that it is possibly not necessary for a program to use setrlimit(2) to increase the maximum number of file descriptors available to it.

Commitment Level

Unstable

rlim_fd_max (Solaris 8 Release)

Description

"Hard" limit on file descriptors that a single process might have open. To override this limit requires superuser privilege.

Data Type

Signed integer

Default

1024

Range

1 to MAXINT

Units

File descriptors

Dynamic?

No

Validation

None

When to Change

When the maximum number of open files for a process is not enough. Note that other limitations in system facilities can mean that a larger number of file descriptors is not as useful as it might be:

  • A 32-bit program using standard I/O is limited to 256 file descriptors. A 64-bit program using standard I/O can use up to 2 billion descriptors.

  • select(3C) is by default limited to 1024 descriptors per fd_set. Starting with the Solaris 7 release, 32-bit application code can be recompiled with a larger fd_set size (less than or equal to 65,536). A 64-bit application sees an fd_set size of 65,536, which cannot be changed.

An alternative to changing this on a system wide basis is to use the plimit(1) command. If a parent process has its limits changed by plimit, all children inherit the increased limit. This is useful for daemons such as inetd.

Commitment Level

Unstable

segkpsize (Pre-Solaris 7 and the Solaris 7 Release)

Description

Specify the amount of kernel pageable memory available. This memory is used primarily for kernel thread stacks. Increasing this number allows either larger stacks for the same number of threads or more threads. This parameter can only be set on 64–bit kernels. 64-bit kernels use a default stack size of 24 Kbytes.

Available for the Solaris 7 release with patch 106541-04 or the Solaris 7 5/99 and Solaris 8 releases.

Data Type

Unsigned long

Default

64–bit kernels, 2 Gbytes

32–bit kernels, 512 Mbytes

Range

64–bit kernels, 512 Mbytes - 24 Gbytes

32-bit kernels, 512 Mbytes

Units

Mbytes

Dynamic?

No

Validation

None

When to Change

Increase when more threads are desired.

Commitment Level

Unstable