| General I/O
maxphys
Description | Maximum size of physical
I/O requests. If a driver sees a request larger than this size, the driver
breaks the request into maxphys size chunks. File systems
can and do impose their own limit.
| Data Type | Signed integer
| Default | 126,976 (sun4m), 131,072
(sun4u), 57,344 (Intel). The sd driver uses the value
of 1,048,576 if the drive supports wide transfers. The ssd
driver uses 1,048,576 by default.
| Range | Machine-specific page size
to MAXINT
| Units | Bytes
| Dynamic? | Yes, but many file systems
load this value into a per-mount point data structure when the file system
is mounted. A number of drivers load the value at the time a device is attached
into a driver-specific data structure.
| Validation | None
| When to Change | When doing I/O to
and from raw devices in large chunks. Note that a DBMS doing OLTP operations
issues large numbers of small I/Os. Changing maxphys does
not result in any performance improvement in that case.
When doing I/O to and from a UFS file system where large amounts of
data (greater than 64 Kbytes) are being read or written at any one time. Note
that the file system should be optimized to increase contiguity (for example,
increase the size of the cylinder groups and decrease the number of inodes
per cylinder group). UFS imposes an internal limit of 1 Mbyte on the maximum
I/O size it transfers.
| Commitment Level | Unstable
|
rlim_fd_max
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 | 65,536
| 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
| Change History | For information,
see "rlim_fd_max (Solaris 8 Release)".
|
rlim_fd_cur
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 | 256
| Range | 1 to MAXINT
| Units | File descriptors
| Dynamic? | No
| 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
| Change History | For information,
see "rlim_fd_cur (Pre-Solaris 7 and the Solaris 7 Release)".
|
General File System
ncsize
Description | Number of entries in
the directory name look-up cache (DNLC). This parameter is used by UFS and
NFS to cache elements of path names that have been resolved.
Starting with the Solaris 8 6/00 release, the DNLC also caches negative
lookup information, which means it caches a name not found in the cache.
| Data Type | Signed integer
| Default | 4 x (v.v_proc
+ maxusers) + 320
| Range | 0 to MAXINT
| Units | DNLC entries
| Dynamic? | No
| Validation | None. Larger values cause
the time it takes to unmount a file system to increase as the cache must be
flushed of entries for that file system during the unmount process.
| When to Change | Prior to the Solaris
8 6/00 release, it is difficult to determine whether the cache is too small.
It is possible to infer this by noting the number of enters returned by kstat -n ncstats. If the number seems high given the system workload
and file access pattern, this may be due to the size of the DNLC.
Starting with the Solaris 8 6/00 release, kstat -n dnlcstats, is available for you to determine when entries have been removed
from the DNLC because it was too small. The sum of the pick_heuristic and the pick_last represents otherwise valid
entries which were reclaimed because the cache was too small.
Note that excessive values of ncsize have an immediate
impact on the system since the system allocates a set of data structures for
the DNLC based on the value of ncsize. A system running
a 32-bit kernel allocates 36 byte structures for ncsize,
while a system running a 64-bit kernel allocates 64 byte structures for ncsize. The value also has a further affect on UFS and NFS unless ufs_inode and nfs:nfs_rnode are explicitly set.
| Commitment Level | Unstable
|
rstchown
Description | Indicates whether the
POSIX semantics for the chown(2) system call are in effect. POSIX semantics
are:
A process cannot change the owner of a file unless it is running
with UID 0.
A process cannot change the group ownership of a file to a
group in which it is not currently a member unless it is running as UID 0.
| Data Type | Signed integer
| Default | 1, indicating that POSIX
semantics are used
| Range | 0 = POSIX semantics not in
force, 1 = POSIX semantics used
| Units | Toggle (on/off)
| Dynamic? | Yes
| Validation | None
| When to Change | When POSIX semantics
are not desired. Note that turning off POSIX semantics opens the potential
for various security holes. It also opens the possibility of a user changing
ownership of a file to another user and being unable to retrieve the file
back without intervention from the user or the system administrator.
| Commitment Level | Obsolete
|
| |