| 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 request that the
server returns as well as the maximum size of a request that the client generates.
| Data Type | Integer (32-bit)
| Default | 32, 768 (32 kbytes)
| Range | 0 to 231
- 1
| Units | Bytes
| Dynamic? | Yes
| Validation | None. Although setting
the maximum transfer size on the server to 0 will probably
either 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 large might result
in errors from UDP and communication problems between the client and the server.
| When to Change | Change this parameter
to tune the size of data being passed over the network. In general, the nfs3_bsize parameter should also be updated to reflect changes in
this parameter. For example, when attempting to reduce the default over-the-wire
transfer size to 8 kbytes, the value of both the nfs3_max_transfer_size and nfs3_bsize parameters should be changed
to 8192 to avoid using multiple operations, each reading or writing 8 kbytes.
Alternately, when attempting to increase the transfer size beyond 32 kbytes,
then nfs3_bsize should also be updated to reflect the increased
value, otherwise no change in the over-the-wire request size is seen.
| Stability Level | Unstable
|
nfssrv Module Parameters
This section describes NFS parameters for the nfssrv
module.
nfssrv:nfs_portmon
Description | Controls some security
checking that the NFS server can do to attempt to enforce integrity on the
part of its clients. It can check to see whether the source port from which
a request was sent was a reserved port. This is a port
whose number is less than 1024. For BSD based systems, these ports are reserved
to processes being run by root. This checking can prevent users from writing
their own RPC-based applications to defeat the access checking that the NFS
client uses.
| Data Type | Integer (32-bit)
| Default | 0 (checking disabled)
| Range | 0 (checking disabled), 1 (checking
enabled)
| Units | Boolean values
| Dynamic? | Yes
| Validation | None
| When to Change | Use this parameter
to prevent malicious users from gaining access to files by using the NFS server
that they would not ordinarily have access to. However, the reserved
port notion is not universally supported. Thus, the security aspects
of the check are very weak. Also, not all NFS client implementations bind
their transport endpoints to a port number in the reserved range, so interoperability
problems might result if the checking is enabled.
| Stability Level | Evolving
|
nfssrv:rfs_write_async
Description | Controls the behavior
of the NFS version 2 server when it processes WRITE requests.
The NFS version 2 protocol mandates that all modified data and metadata associated
with the WRITE request reside on stable storage before
the server can respond to the client. NFS version 2 WRITE
requests are limited to 8192 bytes of data. Thus, each WRITE
request might cause multiple small writes to the storage subsystem. This can
cause a performance problem.
One trick to accelerate NFS version 2 WRITEs is to
take advantage of a client behavior. Clients tend to send out WRITE requests in batches. The server can take advantage of this behavior
by clustering together the different WRITE requests into
a single request to the underlying file system. Thus, the data to be written
to the storage subsystem can be written in fewer, larger requests. This can
increase the throughput for WRITE requests tremendously.
| Data Type | Integer (32-bit)
| Default | 1 (clustering enabled)
| Range | 0 (clustering disabled), 1
(clustering enabled)
| Units | Boolean values
| Dynamic? | Yes
| Validation | None
| When to Change | Some very small NFS
clients, particularly PC clients, might not batch WRITE
requests. Thus, the behavior required from the clients might not exist, and
the clustering in the NFS version 2 server might just add overhead and slow
down performance instead of increasing it.
| Stability Level | Evolving
|
nfssrv:nfsauth_ch_cache_max
Description | Controls the size of
the cache of client handles that contact the NFS authentication server. This
server authenticates NFS clients to determine whether they are allowed access
to the file handle that they are trying to use.
| Data Type | Integer (32-bit)
| Default | 16
| Range | 0 to 231
- 1
| Units | Client handles
| Dynamic? | Yes
| Validation | None
| When to Change | This cache is not
dynamic, so attempts to allocate a client handle when all are busy will fail.
This results in requests being dropped by the NFS server because they could
not be authenticated. Most of the time, this is not a problem because the
NFS client just times out and retransmits the request. However, for soft-mounted
file systems on the client, the client might time out, not retry the request,
and then return an error to the application. This might have been avoided
by ensuring that the size of the cache on the server is large enough to handle
the load.
| Stability Level | Unstable
|
nfssrv:exi_cache_time
Description | Controls the duration
of time that entries are held in the NFS authentication cache before being
purged due to memory pressure in the system.
| Data Type | Long integer (32 bits
on 32-bit platforms and 64 bits on 64-bit platforms)
| Default | 3600 seconds (1 hour)
| 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 | The size of the NFS
authentication cache can be adjusted by varying the minimum age of entries
that can get purged from the cache. The size of the cache should be controlled
so that it is not allowed to grow too large, thus using system resources
that are not allowed to be released due to this aging process.
| Stability Level | Evolving
|
| |