Document Information
Preface
1. Overview of Solaris System Tuning
2. Solaris Kernel Tunable Parameters
3. NFS Tunable Parameters
Where to Find Tunable Parameter Information
Tuning the NFS Environment
nfssrv Module Parameters
rpcmod Module Parameters
4. Internet Protocol Suite Tunable Parameters
5. Network Cache and Accelerator Tunable Parameters
6. System Facility Parameters
A. Tunable Parameters Change History
B. Revision History for This Manual
Index
|
NFS Module Parameters
This section describes parameters related to the NFS kernel module.
nfs:nfs3_pathconf_disable_cache
- Description
Controls the caching of pathconf information for NFS Version 3 mounted file systems.
- Data Type
Integer (32-bit)
- Default
0 (caching enabled)
- Range
0 (caching enabled) or 1 (caching disabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
The pathconf information is cached on a per file basis. However, if the server can change the information for a specific file dynamically, use this parameter to disable caching. There is no mechanism for the client to validate its cache entry.
- Commitment Level
Unstable
nfs:nfs4_pathconf_disable_cache
- Description
Controls the caching of pathconf information for NFS Version 4 mounted file systems.
- Data Type
Integer (32-bit)
- Default
0 (caching enabled)
- Range
0 (caching enabled) or 1 (caching disabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
The pathconf information is cached on a per file basis. However, if the server can change the information for a specific file dynamically, use this parameter to disable caching. There is no mechanism for the client to validate its cache entry.
- Commitment Level
Unstable
nfs:nfs_allow_preepoch_time
- Description
Controls whether files with incorrect or negative time stamps should be made visible on the client. Historically, neither the NFS client nor the NFS server would do any range checking on the file times being returned. The over-the-wire timestamp values are unsigned and 32-bits long. So, all values have been legal. However, on a system running a 32-bit Solaris kernel, the timestamp values are signed and 32-bits long. Thus, it would be possible to have a timestamp representation that appeared to be prior to January 1, 1970, or pre-epoch. The problem on a system running a 64-bit Solaris kernel is slightly different. The timestamp values on the 64-bit Solaris kernel are signed and 64-bits long. It is impossible to determine whether a time field represents a full 32-bit time or a negative time, that is, a time prior to January 1, 1970. It is impossible to determine whether to sign extend a time value when converting from 32 bits to 64 bits. The time value should be sign extended if the time value is truly a negative number. However, the time value should not be sign extended if it does truly represent a full 32-bit time value. This problem is resolved by simply disallowing full 32-bit time values.
- Data Type
Integer (32-bit)
- Default
0 (32-bit time stamps disabled)
- Range
0 (32-bit time stamps disabled) or 1 (32-bit time stamps enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Even during normal operation, it is possible for the timestamp values on some files to be set very far in the future or very far in the past. If access to these files is preferred using NFS mounted file systems, set this parameter to 1 to allow the timestamp values to be passed through unchecked.
- Commitment Level
Unstable
nfs:nfs_cots_timeo
- Description
Controls the default RPC timeout for NFS version 2 mounted file systems using connection-oriented transports such as TCP for the transport protocol.
- Data Type
Signed integer (32-bit)
- Default
600 (60 seconds)
- Range
0 to 231 - 1
- Units
10th of seconds
- Dynamic?
Yes, but the RPC timeout for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
TCP does a good job ensuring requests and responses are delivered appropriately. However, if the round-trip times are very large in a particularly slow network, the NFS version 2 client might time out prematurely. Increase this parameter to prevent the client from timing out incorrectly. The range of values is very large, so increasing this value too much might result in situations where a retransmission is not detected for long periods of time.
- Commitment Level
Unstable
nfs:nfs3_cots_timeo
- Description
Controls the default RPC timeout for NFS version 3 mounted file systems using connection-oriented transports such as TCP for the transport protocol.
- Data Type
Signed integer (32-bit)
- Default
600 (60 seconds)
- Range
0 to 231 - 1
- Units
10th of seconds
- Dynamic?
Yes, but the RPC timeout for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
TCP does a good job ensuring requests and responses are delivered appropriately. However, if the round-trip times are very large in a particularly slow network, the NFS version 3 client might time out prematurely. Increase this parameter to prevent the client from timing out incorrectly. The range of values is very large, so increasing this value too much might result in situations where a retransmission is not detected for long periods of time.
- Commitment Level
Unstable
nfs:nfs4_cots_timeo
- Description
Controls the default RPC timeout for NFS version 4 mounted file systems using connection-oriented transports such as TCP for the transport protocol. The NFS Version 4 protocol specification disallows retransmission over the same TCP connection. Thus, this parameter primarily controls how quickly the client responds to certain events, such as detecting a forced unmount operation or detecting how quickly the server fails over to a new server.
- Data Type
Signed integer (32-bit)
- Default
600 (60 seconds)
- Range
0 to 231 - 1
- Units
10th of seconds
- Dynamic?
Yes, but this parameter is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
TCP does a good job ensuring requests and responses are delivered appropriately. However, if the round-trip times are very large in a particularly slow network, the NFS version 4 client might time out prematurely. Increase this parameter to prevent the client from timing out incorrectly. The range of values is very large, so increasing this value too much might result in situations where a retransmission is not detected for long periods of time.
- Commitment Level
Unstable
nfs:nfs_do_symlink_cache
- Description
Controls whether the contents of symbolic link files are cached for NFS version 2 mounted file systems.
- Data Type
Integer (32–bit)
- Default
1 (caching enabled)
- Range
0 (caching disabled) or 1 (caching enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
If a server changes the contents of a symbolic link file without updating the modification timestamp on the file or if the granularity of the timestamp is too large, then changes to the contents of the symbolic link file might not be visible on the client for extended periods. In this case, use this parameter to disable the caching of symbolic link contents. Doing so makes the changes immediately visible to applications running on the client.
- Commitment Level
Unstable
nfs:nfs3_do_symlink_cache
- Description
Controls whether the contents of symbolic link files are cached for NFS version 3 mounted file systems.
- Data Type
Integer (32-bit)
- Default
1 (caching enabled)
- Range
0 (caching disabled) or 1 (caching enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
If a server changes the contents of a symbolic link file without updating the modification timestamp on the file or if the granularity of the timestamp is too large, then changes to the contents of the symbolic link file might not be visible on the client for extended periods. In this case, use this parameter to disable the caching of symbolic link contents. Doing so makes the changes immediately visible to applications running on the client.
- Commitment Level
Unstable
nfs:nfs4_do_symlink_cache
- Description
Controls whether the contents of symbolic link files are cached for NFS version 4 mounted file systems.
- Data Type
Integer (32-bit)
- Default
1 (caching enabled)
- Range
0 (caching disabled) or 1 (caching enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
If a server changes the contents of a symbolic link file without updating the modification timestamp on the file or if the granularity of the timestamp is too large, then changes to the contents of the symbolic link file might not be visible on the client for extended periods. In this case, use this parameter to disable the caching of symbolic link contents. Doing so makes the changes immediately visible to applications running on the client.
- Commitment Level
Unstable
nfs:nfs_dynamic
- Description
Controls whether a feature known as dynamic retransmission is enabled for NFS version 2 mounted file systems using connectionless transports such as UDP. This feature attempts to reduce retransmissions by monitoring server response times and then adjusting RPC timeouts and read- and write- transfer sizes.
- Data Type
Integer (32-bit)
- Default
1 (enabled)
- Range
0 (disabled) or 1 (enabled)
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
Do not change this parameter.
- Commitment Level
Unstable
nfs:nfs3_dynamic
- Description
Controls whether a feature known as dynamic retransmission is enabled for NFS version 3 mounted file systems using connectionless transports such as UDP. This feature attempts to reduce retransmissions by monitoring server response times and then adjusting RPC timeouts and read- and write- transfer sizes.
- Data Type
Integer (32-bit)
- Default
0 (disabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
Do not change this parameter.
- Commitment Level
Unstable
nfs:nfs_lookup_neg_cache
- Description
Controls whether a negative name cache is used for NFS version 2 mounted file systems. This negative name cache records file names that were looked up, but not found. The cache is used to avoid over-the-network look-up requests made for file names that are already known to not exist.
- Data Type
Integer (32-bit)
- Default
1 (enabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
For the cache to perform correctly, negative entries must be strictly verified before they are used. This consistency mechanism is relaxed slightly for read-only mounted file systems. It is assumed that the file system on the server is not changing or is changing very slowly, and that it is okay for such changes to propagate slowly to the client. The consistency mechanism becomes the normal attribute cache mechanism in this case. If file systems are mounted read-only on the client, but are expected to change on the server and these changes need to be seen immediately by the client, use this parameter to disable the negative cache. If you disable the nfs:nfs_disable_rddir_cache parameter, you should probably also disable this parameter. For more information, see nfs:nfs_disable_rddir_cache.
- Commitment Level
Unstable
nfs:nfs3_lookup_neg_cache
- Description
Controls whether a negative name cache is used for NFS version 3 mounted file systems. This negative name cache records file names that were looked up, but were not found. The cache is used to avoid over-the-network look-up requests made for file names that are already known to not exist.
- Data Type
Integer (32-bit)
- Default
1 (enabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
For the cache to perform correctly, negative entries must be strictly verified before they are used. This consistency mechanism is relaxed slightly for read-only mounted file systems. It is assumed that the file system on the server is not changing or is changing very slowly, and that it is okay for such changes to propagate slowly to the client. The consistency mechanism becomes the normal attribute cache mechanism in this case. If file systems are mounted read-only on the client, but are expected to change on the server and these changes need to be seen immediately by the client, use this parameter to disable the negative cache. If you disable the nfs:nfs_disable_rddir_cache parameter, you should probably also disable this parameter. For more information, see nfs:nfs_disable_rddir_cache.
- Commitment Level
Unstable
nfs:nfs4_lookup_neg_cache
- Description
Controls whether a negative name cache is used for NFS version 4 mounted file systems. This negative name cache records file names that were looked up, but were not found. The cache is used to avoid over-the-network look-up requests made for file names that are already known to not exist.
- Data Type
Integer (32-bit)
- Default
1 (enabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
For the cache to perform correctly, negative entries must be strictly verified before they are used. This consistency mechanism is relaxed slightly for read-only mounted file systems. It is assumed that the file system on the server is not changing or is changing very slowly, and that it is okay for such changes to propagate slowly to the client. The consistency mechanism becomes the normal attribute cache mechanism in this case. If file systems are mounted read-only on the client, but are expected to change on the server and these changes need to be seen immediately by the client, use this parameter to disable the negative cache. If you disable the nfs:nfs_disable_rddir_cache parameter, you should probably also disable this parameter. For more information, see nfs:nfs_disable_rddir_cache.
- Commitment Level
Unstable
nfs:nfs_max_threads
- Description
Controls the number of kernel threads that perform asynchronous I/O for the NFS version 2 client. Because NFS is based on RPC and RPC is inherently synchronous, separate execution contexts are required to perform NFS operations that are asynchronous from the calling thread. The operations that can be executed asynchronously are read for read-ahead, readdir for readdir read-ahead, write for putpage and pageio operations, commit, and inactive for cleanup operations that the client performs when it stops using a file.
- Data Type
Integer (16-bit)
- Default
8
- Range
0 to 215 - 1
- Units
Threads
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
To increase or reduce the number of simultaneous I/O operations that are outstanding at any given time. For example, for a very low bandwidth network, you might want to decrease this value so that the NFS client does not overload the network. Alternately, if the network is very high bandwidth, and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
nfs:nfs3_max_threads
- Description
Controls the number of kernel threads that perform asynchronous I/O for the NFS version 3 client. Because NFS is based on RPC and RPC is inherently synchronous, separate execution contexts are required to perform NFS operations that are asynchronous from the calling thread. The operations that can be executed asynchronously are read for read-ahead, readdir for readdir read-ahead, write for putpage and pageio requests, and commit.
- Data Type
Integer (16-bit)
- Default
8
- Range
0 to 215 - 1
- Units
Threads
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
To increase or reduce the number of simultaneous I/O operations that are outstanding at any given time. For example, for a very low bandwidth network, you might want to decrease this value so that the NFS client does not overload the network. Alternately, if the network is very high bandwidth, and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
nfs:nfs4_max_threads
- Description
Controls the number of kernel threads that perform asynchronous I/O for the NFS version 4 client. Because NFS is based on RPC and RPC is inherently synchronous, separate execution contexts are required to perform NFS operations that are asynchronous from the calling thread. The operations that can be executed asynchronously are read for read-ahead, write-behind, directory read-ahead, and cleanup operations that the client performs when it stops using a file.
- Data Type
Integer (16-bit)
- Default
8
- Range
0 to 215 - 1
- Units
Threads
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None
- When to Change
To increase or reduce the number of simultaneous I/O operations that are outstanding at any given time. For example, for a very low bandwidth network, you might want to decrease this value so that the NFS client does not overload the network. Alternately, if the network is very high bandwidth, and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
nfs:nfs_nra
- Description
Controls the number of read-ahead operations that are queued by the NFS version 2 client when sequential access to a file is discovered. These read-ahead operations increase concurrency and read throughput. Each read-ahead request is generally for one logical block of file data.
- Data Type
Integer (32-bit)
- Default
4
- Range
0 to 231 - 1
- Units
Logical blocks. (See nfs:nfs_bsize.)
- Dynamic?
Yes
- Validation
None
- When to Change
To increase or reduce the number of read-ahead requests that are outstanding for a specific file at any given time. For example, for a very low bandwidth network or on a low memory client, you might want to decrease this value so that the NFS client does not overload the network or the system memory. Alternately, if the network is very high bandwidth, and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
nfs:nfs3_nra
- Description
Controls the number of read-ahead operations that are queued by the NFS version 3 client when sequential access to a file is discovered. These read-ahead operations increase concurrency and read throughput. Each read-ahead request is generally for one logical block of file data.
- Data Type
Integer (32-bit)
- Default
4
- Range
0 to 231 - 1
- Units
Logical blocks. (See nfs:nfs3_bsize.)
- Dynamic?
Yes
- Validation
None
- When to Change
To increase or reduce the number of read-ahead requests that are outstanding for a specific file at any given time. For example, for a very low bandwidth network or on a low memory client, you might want to decrease this value so that the NFS client does not overload the network or the system memory. Alternately, if the network is very high bandwidth and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
- Change History
For information, see nfs:nfs3_nra (Solaris 10).
nfs:nfs4_nra
- Description
Controls the number of read-ahead operations that are queued by the NFS version 4 client when sequential access to a file is discovered. These read-ahead operations increase concurrency and read throughput. Each read-ahead request is generally for one logical block of file data.
- Data Type
Integer (32-bit)
- Default
4
- Range
0 to 231 - 1
- Units
Logical blocks. (See nfs:nfs4_bsize.)
- Dynamic?
Yes
- Validation
None
- When to Change
To increase or reduce the number of read-ahead requests that are outstanding for a specific file at any given time. For example, for a very low bandwidth network or on a low memory client, you might want to decrease this value so that the NFS client does not overload the network or the system memory. Alternately, if the network is very high bandwidth, and the client and server have sufficient resources, you might want to increase this value. Doing so can more effectively utilize the available network bandwidth, and the client and server resources.
- Commitment Level
Unstable
nfs:nrnode
- Description
Controls the size of the rnode cache on the NFS client. The rnode, used by both NFS version 2, 3, and 4 clients, is the central data structure that describes a file on the NFS client. The rnode contains the file handle that identifies the file on the server. The rnode also contains pointers to various caches used by the NFS client to avoid network calls to the server. Each rnode has a one-to-one association with a vnode. The vnode caches file data. The NFS client attempts to maintain a minimum number of rnodes to attempt to avoid destroying cached data and metadata. When an rnode is reused or freed, the cached data and metadata must be destroyed.
- Data Type
Integer (32-bit)
- Default
The default setting of this parameter is 0, which means that the value of nrnode should be set to the value of the ncsize parameter. Actually, any non positive value of nrnode results in nrnode being set to the value of ncsize.
- Range
1 to 231 - 1
- Units
rnodes
- Dynamic?
No. This value can only be changed by adding or changing the parameter in the /etc/system file, and then rebooting the system.
- Validation
The system enforces a maximum value such that the rnode cache can only consume 25 percent of available memory.
- When to Change
Because rnodes are created and destroyed dynamically, the system tends to settle upon a nrnode-size cache, automatically adjusting the size of the cache as memory pressure on the system increases or as more files are simultaneously accessed. However, in certain situations, you could set the value of nrnode if the mix of files being accessed can be predicted in advance. For example, if the NFS client is accessing a few very large files, you could set the value of nrnode to a small number so that system memory can cache file data instead of rnodes. Alternately, if the client is accessing many small files, you could increase the value of nrnode to optimize for storing file metadata to reduce the number of network calls for metadata. Although it is not recommended, the rnode cache can be effectively disabled by setting the value of nrnode to 1. This value instructs the client to only cache 1 rnode, which means that it is reused frequently.
- Commitment Level
Unstable
- Change History
For information, see nfs:nrnode (Solaris 9 8/03).
nfs:nfs_shrinkreaddir
- Description
Some older NFS servers might incorrectly handle NFS version 2 READDIR requests for more than 1024 bytes of directory information. This problem is due to a bug in the server implementation. However, this parameter contains a workaround in the NFS version 2 client. When this parameter is enabled, the client does not generate a READDIR request for larger than 1024 bytes of directory information. If this parameter is disabled, then the over-the-wire size is set to the lesser of either the size passed in by using the getdents system call or by using NFS_MAXDATA, which is 8192 bytes. For more information, see getdents(2).
- Data Type
Integer (32-bit)
- Default
0 (disabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter if an older NFS version 2 only server is used and interoperability problems occur when the server tries to read directories. Enabling this parameter might cause a slight decrease in performance for applications that read directories.
- Commitment Level
Unstable
nfs:nfs3_shrinkreaddir
- Description
Some older NFS servers might incorrectly handle NFS version 3 READDIR requests for more than 1024 bytes of directory information. This problem is due to a bug in the server implementation. However, this parameter contains a workaround in the NFS version 3 client. When this parameter is enabled, the client does not generate a READDIR request for larger than 1024 bytes of directory information. If this parameter is disabled, then the over-the-wire size is set to the minimum of either the size passed in by using the getdents system call or by using MAXBSIZE, which is 8192 bytes. For more information, see getdents(2).
- Data Type
Integer (32-bit)
- Default
0 (disabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter if an older NFS version 3 only server is used and interoperability problems occur when the server tries to read directories. Enabling this parameter might cause a slight decrease in performance for applications that read directories.
- Commitment Level
Unstable
nfs:nfs4_shrinkreaddir
- Description
Some NFS servers might incorrectly handle NFS version 4 READDIR requests for more than 1024 bytes of directory information. This problem is due to a bug in the server implementation. However, this parameter contains a workaround in the NFS version 4 client. When this parameter is enabled, the client does not generate a READDIR request for larger than 1024 bytes of directory information. If this parameter is disabled, then the over-the-wire size is set to the lesser of either the size passed in by using the getdents system call or by using MAXBSIZE, which is 8192 bytes. For more information, see getdents(2).
- Data Type
Integer (32-bit)
- Default
0 (disabled)
- Range
0 (disabled) or 1 (enabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter if an NFS version 4 only server is used and interoperability problems occur when the server tries to read directories. Enabling this parameter might cause a slight performance drop for applications that read directories.
- Commitment Level
Unstable
nfs:nfs_write_error_interval
- Description
Controls the time duration in between logging ENOSPC and EDQUOT write errors received by the NFS client. This parameter affects NFS version 2, 3, and 4 clients.
- Data Type
Long integer (32 bits on 32-bit platforms and 64 bits on 64-bit platforms)
- Default
5 seconds
- Range
0 to 231 - 1 on 32-bit platforms 0 to 263 - 1 on 64-bit platforms
- Units
Seconds
- Dynamic?
Yes
- Validation
None
- When to Change
Increase or decrease the value of this parameter in response to the volume of messages being logged by the client. Typically, you might want to increase the value of this parameter to decrease the number of out of space messages being printed when a full file system on a server is being actively used.
- Commitment Level
Unstable
- Change History
For information, see nfs:nfs_write_error_interval (Solaris 9 8/03).
nfs:nfs_write_error_to_cons_only
- Description
Controls whether NFS write errors are logged to the system console and syslog or to the system console only. This parameter affects messages for NFS version 2, 3, and 4 clients.
- Data Type
Integer (32-bit)
- Default
0 (system console and syslog)
- Range
0 (system console and syslog) or 1 (system console)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter to avoid filling up the file system containing the messages logged by the syslogd daemon. When this parameter is enabled, messages are printed on the system console only and are not copied to the syslog messages file.
- Commitment Level
Unstable
- Change History
For information, see nfs:nfs_write_error_to_cons_only (Solaris 9 8/03).
nfs:nfs_disable_rddir_cache
- Description
Controls the use of a cache to hold responses from READDIR and READDIRPLUS requests. This cache avoids over-the-wire calls to the server to retrieve directory information.
- Data Type
Integer (32-bit)
- Default
0 (caching enabled)
- Range
0 (caching enabled) or 1 (caching disabled)
- Units
Boolean values
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter if interoperability problems develop due to a server that does not update the modification time on a directory when a file or directory is created in it or removed from it. The symptoms are that new names do not appear in directory listings after they have been added to the directory or that old names do not disappear after they have been removed from the directory. This parameter controls the caching for NFS version 2, 3, and 4 mounted file systems. This parameter applies to all NFS mounted file systems, so caching cannot be disabled or enabled on a per file system basis. If you disable this parameter, you should also disable the following parameters to to prevent bad entries in the DNLC negative cache:
- Commitment Level
Unstable
- Change History
For information, see nfs:nfs_disable_rddir_cache (Solaris 9 8/03).
nfs:nfs_bsize
- Description
Controls the logical block size used by the NFS version 2 client. This block size represents the amount of data that the client attempts to read from or write to the server when it needs to do an I/O.
- Data Type
Unsigned integer (32-bit)
- Default
8192 bytes
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but the block size for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. Setting this parameter too low or too high might cause the system to malfunction. Do not set this parameter to anything less than PAGESIZE for the specific platform. Do not set this parameter too high because it might cause the system to hang while waiting for memory allocations to be granted.
- When to Change
Do not change this parameter.
- Commitment Level
Unstable
nfs:nfs3_bsize
- Description
Controls the logical block size used by the NFS version 3 client. This block size represents the amount of data that the client attempts to read from or write to the server when it needs to do an I/O.
- Data Type
Unsigned integer (32-bit)
- Default
32,768 (32 Kbytes)
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but the block size for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. Setting this parameter too low or too high might cause the system to malfunction. Do not set this parameter to anything less than PAGESIZE for the specific platform. Do not set this parameter too high because it might cause the system to hang while waiting for memory allocations to be granted.
- When to Change
Examine the value of this parameter when attempting to change the maximum data transfer size. Change this parameter in conjunction with the nfs:nfs3_max_transfer_size parameter. If larger transfers are preferred, increase both parameters. If smaller transfers are preferred, then just reducing this parameter should suffice.
- Commitment Level
Unstable
nfs:nfs4_bsize
- Description
Controls the logical block size used by the NFS version 4 client. This block size represents the amount of data that the client attempts to read from or write to the server when it needs to do an I/O.
- Data Type
Unsigned integer (32-bit)
- Default
32,768 (32 Kbytes)
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but the block size for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. Setting this parameter too low or too high might cause the system to malfunction. Do not set this parameter to anything less than PAGESIZE for the specific platform. Do not set this parameter too high because it might cause the system to hang while waiting for memory allocations to be granted.
- When to Change
Examine the value of this parameter when attempting to change the maximum data transfer size. Change this parameter in conjunction with the nfs:nfs4_max_transfer_size parameter. If larger transfers are preferred, increase both parameters. If smaller transfers are preferred, then just reducing this parameter should suffice.
- Commitment Level
Unstable
nfs:nfs_async_clusters
- Description
Controls the mix of asynchronous requests that are generated by the NFS version 2 client. The four types of asynchronous requests are read-ahead, putpage, pageio, and readdir-ahead. The client attempts to round-robin between these different request types to attempt to be fair and not starve one request type in favor of another. However, the functionality in some NFS version 2 servers such as write gathering depends upon certain behaviors of existing NFS Version 2 clients. In particular, this functionality depends upon the client sending out multiple WRITE requests at about the same time. If one request is taken out of the queue at a time, the client would be defeating this server functionality designed to enhance performance for the client. Thus, use this parameter to control the number of requests of each request type that are sent out before changing types.
- Data Type
Unsigned integer (32-bit)
- Default
1
- Range
0 to 231 - 1
- Units
Asynchronous requests
- Dynamic?
Yes, but the cluster setting for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the value of this parameter to 0 causes all of the queued requests of a particular request type to be processed before moving on to the next type. This effectively disables the fairness portion of the algorithm.
- When to Change
To increase the number of each type of asynchronous request that is generated before switching to the next type. Doing so might help with server functionality that depends upon clusters of requests coming from the client.
- Commitment Level
Unstable
nfs:nfs3_async_clusters
- Description
Controls the mix of asynchronous requests that are generated by the NFS version 3 client. The five types of asynchronous requests are read-ahead, putpage, pageio, readdir-ahead, and commit. The client attempts to round-robin between these different request types to attempt to be fair and not starve one request type in favor of another. However, the functionality in some NFS version 3 servers such as write gathering depends upon certain behaviors of existing NFS version 3 clients. In particular, this functionality depends upon the client sending out multiple WRITE requests at about the same time. If one request is taken out of the queue at a time, the client would be defeating this server functionality designed to enhance performance for the client. Thus, use this parameter to control the number of requests of each request type that are sent out before changing types.
- Data Type
Unsigned integer (32-bit)
- Default
1
- Range
0 to 231 - 1
- Units
Asynchronous requests
- Dynamic?
Yes, but the cluster setting for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the value of this parameter to 0 causes all of the queued requests of a particular request type to be processed before moving on to the next type. This value effectively disables the fairness portion of the algorithm.
- When to Change
To increase the number of each type of asynchronous operation that is generated before switching to the next type. Doing so might help with server functionality that depends upon clusters of operations coming from the client.
- Commitment Level
Unstable
nfs:nfs4_async_clusters
- Description
Controls the mix of asynchronous requests that are generated by the NFS version 4 client. The six types of asynchronous requests are read-ahead, putpage, pageio, readdir-ahead, commit, and inactive. The client attempts to round-robin between these different request types to attempt to be fair and not starve one request type in favor of another. However, the functionality in some NFS version 4 servers such as write gathering depends upon certain behaviors of existing NFS version 4 clients. In particular, this functionality depends upon the client sending out multiple WRITE requests at about the same time. If one request is taken out of the queue at a time, the client would be defeating this server functionality designed to enhance performance for the client. Thus, use this parameter to control the number of requests of each request type that are sent out before changing types.
- Data Type
Unsigned integer (32-bit)
- Default
1
- Range
0 to 231 - 1
- Units
Asynchronous requests
- Dynamic?
Yes, but the cluster setting for a file system is set when the file system is mounted. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the value of this parameter to 0 causes all of the queued requests of a particular request type to be processed before moving on to the next type. This effectively disables the fairness portion of the algorithm.
- When to Change
To increase the number of each type of asynchronous request that is generated before switching to the next type. Doing so might help with server functionality that depends upon clusters of requests coming from the client.
- Commitment Level
Unstable
nfs:nfs_async_timeout
- Description
Controls the duration of time that threads, which execute asynchronous I/O requests, sleep with nothing to do before exiting. When there are no more requests to execute, each thread goes to sleep. If no new requests come in before this timer expires, the thread wakes up and exits. If a request does arrive, a thread is woken up to execute requests until there are none again. Then, the thread goes back to sleep waiting for another request to arrive, or for the timer to expire.
- Data Type
Integer (32-bit)
- Default
6000 (1 minute expressed as 60 sec * 100Hz)
- Range
0 to 231 - 1
- Units
Hz. (Typically, the clock runs at 100Hz.)
- Dynamic?
Yes
- Validation
None. However, setting this parameter to a non positive value causes these threads exit as soon as there are no requests in the queue for them to process.
- When to Change
If the behavior of applications in the system is known precisely and the rate of asynchronous I/O requests can be predicted, it might be possible to tune this parameter to optimize performance slightly in either of the following ways:
By making the threads expire more quickly, thus freeing up kernel resources more quickly
By making the threads expire more slowly, thus avoiding thread create and destroy overhead
- Commitment Level
Unstable
nfs:nacache
- Description
Tunes the number of hash queues that access the file access cache on the NFS client. The file access cache stores file access rights that users have with respect to files that they are trying to access. The cache itself is dynamically allocated. However, the hash queues used to index into the cache are statically allocated. The algorithm assumes that there is one access cache entry per active file and four of these access cache entries per hash bucket. Thus, by default, the value of this parameter is set to the value of the nrnode parameter.
- Data Type
Integer (32-bit)
- Default
The default setting of this parameter is 0. This value means that the value of nacache should be set to the value of the nrnode parameter.
- Range
1 to 231 - 1
- Units
Access cache entries
- Dynamic?
No. This value can only be changed by adding or changing the parameter in the /etc/system file, and then rebooting system.
- Validation
None. However, setting this parameter to a negative value will probably cause the system to try to allocate a very large set of hash queues. While trying to do so, the system is likely to hang.
- When to Change
Examine the value of this parameter if the basic assumption of one access cache entry per file would be violated. This violation could occur for systems in a timesharing mode where multiple users are accessing the same file at about the same time. In this case, it might be helpful to increase the expected size of the access cache so that the hashed access to the cache stays efficient.
- Commitment Level
Unstable
nfs:nfs3_jukebox_delay
- Description
Controls the duration of time that the NFS version 3 client waits to transmit a new request after receiving the NFS3ERR_JUKEBOX error from a previous request. The NFS3ERR_JUKEBOX error is generally returned from the server when the file is temporarily unavailable for some reason. This error is generally associated with hierarchical storage, and CD or tape jukeboxes.
- Data Type
Long integer (32 bits on 32-bit platforms and 64 bits on 64-bit platforms)
- Default
1000 (10 seconds expressed as 10 sec * 100Hz)
- Range
0 to 231 - 1 on 32-bit platforms 0 to 263 - 1 on 64-bit platforms
- Units
Hz. (Typically, the clock runs at 100Hz.)
- Dynamic?
Yes
- Validation
None
- When to Change
Examine the value of this parameter and perhaps adjust it to match the behaviors exhibited by the server. Increase this value if the delays in making the file available are long in order to reduce network overhead due to repeated retransmissions. Decrease this value to reduce the delay in discovering that the file has become available.
- Commitment Level
Unstable
nfs:nfs3_max_transfer_size
- Description
Controls the maximum size of the data portion of an NFS version 3 READ, WRITE, READDIR, or READDIRPLUS request. This parameter controls both the maximum size of the request that the server returns as well as the maximum size of the request that the client generates.
- Data Type
Integer (32-bit)
- Default
1,048,576 (1 Mbyte)
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the maximum transfer size on the server to 0 is likely to cause clients to malfunction or just decide not to attempt to talk to the server. There is also a limit on the maximum transfer size when using NFS over the UDP transport. UDP has a hard limit of 64 Kbytes per datagram. This 64 Kbytes must include the RPC header as well as other NFS information, in addition to the data portion of the request. Setting the limit too high might result in errors from UDP and communication problems between the client and the server.
- When to Change
To tune the size of data transmitted over the network. In general, the nfs:nfs3_bsize parameter should also be updated to reflect changes in this parameter. For example, when you attempt to increase the transfer size beyond 32 Kbytes, update nfs:nfs3_bsize to reflect the increased value. Otherwise, no change in the over-the-wire request size is observed. For more information, see nfs:nfs3_bsize. If you want to use a smaller transfer size than the default transfer size, use the mount command's -wsize or -rsize option on a per-file system basis.
- Commitment Level
Unstable
- Change History
For information, see nfs:nfs3_max_transfer_size (Solaris 9 8/03).
nfs:nfs4_max_transfer_size
- Description
Controls the maximum size of the data portion of an NFS version 4 READ, WRITE, READDIR, or READDIRPLUS request. This parameter controls both the maximum size of the request that the server returns as well as the maximum size of the request that the client generates.
- Data Type
Integer (32-bit)
- Default
32, 768 (32 Kbytes)
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the maximum transfer size on the server to 0 is likely to cause clients to malfunction or just decide not to attempt to talk to the server. There is also a limit on the maximum transfer size when using NFS over the UDP transport. For more information on the maximum for UDP, see nfs:nfs3_max_transfer_size.
- When to Change
To tune the size of data transmitted over the network. In general, the nfs:nfs4_bsize parameter should also be updated to reflect changes in this parameter. For example, when you attempt to increase the transfer size beyond 32 Kbytes, update nfs:nfs4_bsize to reflect the increased value. Otherwise, no change in the over-the-wire request size is observed. For more information, see nfs:nfs4_bsize. If you want to use a smaller transfer size than the default transfer size, use the mount command's -wsize or -rsize option on a per-file system basis.
- Commitment Level
Unstable
nfs:nfs3_max_transfer_size_clts
- Description
Controls the maximum size of the data portion of an NFS version 3 READ, WRITE, READDIR, or READDIRPLUS request over UDP. This parameter controls both the maximum size of the request that the server returns as well as the maximum size of the request that the client generates.
- Data Type
Integer (32-bit)
- Default
32, 768 (32 Kbytes)
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the maximum transfer size on the server to 0 is likely to cause clients to malfunction or just decide not to attempt to talk to the server.
- When to Change
Do not change this parameter.
- Commitment Level
Unstable
nfs:nfs3_max_transfer_size_cots
- Description
Controls the maximum size of the data portion of an NFS version 3 READ, WRITE, READDIR, or READDIRPLUS request over TCP. This parameter controls both the maximum size of the request that the server returns as well as the maximum size of the request that the client generates.
- Data Type
Integer (32-bit)
- Default
1048576 bytes
- Range
0 to 231 - 1
- Units
Bytes
- Dynamic?
Yes, but this parameter is set per file system at mount time. To affect a particular file system, unmount and mount the file system after changing this parameter.
- Validation
None. However, setting the maximum transfer size on the server to 0 is likely to cause clients to malfunction or just decide not to attempt to talk to the server.
- When to Change
Do not change this parameter unless transfer sizes larger than 1 Mbyte are preferred.
- Commitment Level
Unstable
|