Solaris Tunable Parameters Reference Manual
Previous Next

rpcmod Module Parameters

This section describes NFS parameters for the rpcmod module.

rpcmod:clnt_max_conns

Description

Controls the number of TCP connections that the NFS client uses when communicating with each NFS server. The kernel RPC is constructed so that it can multiplex RPCs over a single connection. However, multiple connections can be used, if preferred.

Data Type

Integer (32-bit)

Default

1

Range

1 to 231 - 1

Units

Connections

Dynamic?

Yes

Validation

None

When to Change

In general, one connection is sufficient to achieve full network bandwidth. However, if TCP cannot utilize the bandwidth offered by the network in a single stream, then multiple connections might increase the throughput between the client and the server.

Increasing the number of connections doesn't come without consequences. Increasing the number of connections also increases kernel resource usage needed to keep track of each connection.

Commitment Level

Unstable

rpcmod:clnt_idle_timeout

Description

Controls the duration of time on the client that a connection between the client and server is allowed to remain idle before being closed.

Data Type

Long integer (32 bits on 32-bit platforms and 64 bits on 64-bit platforms)

Default

300,000 milliseconds (5 minutes)

Range

0 to 231 - 1 on 32-bit platforms

0 to 263 - 1 on 64-bit platforms

Units

Milliseconds

Dynamic?

Yes

Validation

None

When to Change

Use this parameter to change the time that idle connections are allowed to exist on the client before being closed. You might might want to close connections at a faster rate to avoid consuming system resources.

Commitment Level

Unstable

rpcmod:svc_idle_timeout

Description

Controls the duration of time on the server that a connection between the client and server is allowed to remain idle before being closed.

Data Type

Long integer (32 bits on 32-bit platforms and 64 bits on 64-bit platforms)

Default

360,000 milliseconds (6 minutes)

Range

0 to 231 - 1 on 32-bit platforms

0 to 263 - 1 on 64-bit platforms

Units

Milliseconds

Dynamic?

Yes

Validation

None

When to Change

Use this parameter to change the time that idle connections are allowed to exist on the server before being closed. You might want to close connections at a faster rate to avoid consuming system resources.

Commitment Level

Unstable

rpcmod:svc_default_stksize

Description

Sets the size of the kernel stack for kernel RPC service threads.

Data Type

Integer (32-bit)

Default

The default value is 0. This value means that the stack size is set to the system default.

Range

0 to 231 - 1

Units

Bytes

Dynamic?

Yes, for all new threads that are allocated. The stack size is set when the thread is created. Therefore, changes to this parameter do not affect existing threads but are applied to all new threads that are allocated.

Validation

None

When to Change

Very deep call depths can cause the stack to overflow and cause red zone faults. The combination of a fairly deep call depth for the transport, coupled with a deep call depth for the local file system, can cause NFS service threads to overflow their stacks.

Set this parameter to a multiple of the hardware pagesize on the platform.

Commitment Level

Unstable

rpcmod:svc_default_max_same_xprt

Description

Controls the maximum number of requests that are processed for each transport endpoint before switching transport endpoints. The kernel RPC works by having a pool of service threads and a pool of transport endpoints. Any one of the service threads can process requests from any one of the transport endpoints. For performance, multiple requests on each transport endpoint are consumed before switching to a different transport endpoint. This approach offers performance benefits while avoiding starvation.

Data Type

Integer (32-bit)

Default

8

Range

0 to 231 - 1

Units

Requests

Dynamic?

Yes, but the maximum number of requests to process before switching transport endpoints is set when the transport endpoint is configured into the kernel RPC subsystem. Changes to this parameter only affect new transport endpoints, not existing transport endpoints.

Validation

None

When to Change

Tune this parameter so that services can take advantage of client behaviors such as the clustering that accelerate NFS version 2 WRITE requests. Increasing this parameter might result in the server being better able to take advantage of client behaviors.

Commitment Level

Unstable

rpcmod:maxdupreqs

Description

Controls the size of the duplicate request cache that detects RPC- level retransmissions on connectionless transports. This cache is indexed by the client network address and the RPC procedure number, program number, version number, and transaction ID. This cache avoids processing retransmitted requests that might not be idempotent.

Data Type

Integer (32-bit)

Default

1024

Range

1 to 231 - 1

Units

Requests

Dynamic?

The cache is dynamically sized, but the hash queues that provide fast access to the cache are statically sized. Making the cache very large might result in long search times to find entries in the cache.

Do not set the value of this parameter to 0. This value prevents the NFS server from handling non idempotent requests.

Validation

None

When to Change

Examine the value of this parameter if false failures are encountered by NFS clients. For example, if an attempt to create a directory fails, but the directory is actually created, perhaps that retransmitted MKDIR request was not detected by the server.

The size of the cache should match the load on the server. The cache records non idempotent requests and so only needs to track a portion of the total requests. The cache does need to hold the information long enough to be able to detect a retransmission by the client. Typically, the client timeout for connectionless transports is relatively short, starting around 1 second and increasing to about 20 seconds.

Commitment Level

Unstable

rpcmod:cotsmaxdupreqs

Description

Controls the size of the duplicate request cache that detects RPC- level retransmissions on connection-oriented transports. This cache is indexed by the client network address and the RPC procedure number, program number, version number, and transaction ID. This cache avoids processing retransmitted requests that might not be idempotent.

Data Type

Integer (32–bit)

Default

1024

Range

1 to 231 - 1

Units

Requests

Dynamic?

Yes

Validation

The cache is dynamically sized, but the hash queues that provide fast access to the cache are statically sized. Making the cache very large might result in long search times to find entries in the cache.

Do not set the value of this parameter to 0. It prevents the NFS server from handling non-idempotent requests.

When to Change

Examine the value of this parameter if false failures are encountered by NFS clients. For example, if an attempt to create a directory fails, but the directory is actually created, it is possible that a retransmitted MKDIR request was not detected by the server.

The size of the cache should match the load on the server. The cache records non-idempotent requests and so only needs to track a portion of the total requests. It does need to hold the information long enough to be able to detect a retransmission on the part of the client. Typically, the client timeout for connection oriented transports is very long, about 1 minute. Thus, entries need to stay in the cache for fairly long times.

Commitment Level

Unstable

Previous Next