Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
2.  Solaris Kernel Tunables General Driver moddebug  Previous   Contents   Next 
   
 

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

 
 
 
  Previous   Contents   Next