| nfs:nfs_async_clusters
Description | Controls the mix of
asynchronous requests that are generated by the NFS version 2 client. There
are four types of asynchronous requests, 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 operation type in favor
of another.
However, 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 approximately 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 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
type to be processed before moving on to the next type. This effectively disables
the fairness portion of the algorithm.
| When to Change | Change this parameter
to increase the number of each type of asynchronous operation that is generated
before switching to the next type. This might help with server functionality
that depends upon clusters of operations coming from the client.
| Stability Level | Unstable
|
nfs:nfs3_async_clusters
Description | Controls the mix of
asynchronous requests that are generated by the NFS version 3 client. There
are five types of asynchronous requests, 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 operation type in favor of
another.
However, 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 approximately 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 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
type to be processed before moving on to the next type. This effectively disables
the fairness portion of the algorithm.
| When to Change | Change this parameter
to increase the number of each type of asynchronous operation that is generated
before switching to the next type. This might help with server functionality
that depends upon clusters of operations coming from the client.
| Stability 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, and then 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 has the affect of having 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,
Or, by making them expire more slowly, thus avoiding thread
create and destroy overhead.
| Stability Level | Evolving
|
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,
but the hash queues used to index into it 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, which 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, and then hang while trying to do
so.
| When to Change | Examine the value
of this parameter if the basic assumption of one access cache entry per file
would be violated. This might be true for systems in a time sharing 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.
| Stability Level | Evolving
|
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 error, NFS3ERR_JUKEBOX, from a previous request.
The error, NFS3ERR_JUKEBOX, is generally returned from
the server when the file is temporarily unavailable for some reason. These
situations are 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. The value should be increased if the delays in making the file
available are long in order to reduce network overhead due to repeated retransmissions.
The value can also be decreased to reduce the delay in discovering that the
file has become available.
| Stability Level | Evolving
|
| |