If you are using NFS over a high speed network such as FDDI, SunFastEthernet, or SunATMTM, you will have better read throughput by increasing the number of read-aheads on the NFS client.
Increasing read-aheads is not recommended under these conditions:
The client is very short of RAM.
The network is very busy.
File accesses are randomly distributed.
When free memory is low, read-ahead will not be performed.
The read-ahead is set to 1 block, by default (8 Kbytes with version 2 and to 32 Kbytes with version 3). For example, a read-ahead set to 2 blocks uses an additional 16 Kbytes from a file while you are reading the first 8 Kbytes from the file. Thus, the read-ahead stays one step ahead of you and uses information in 8 Kbyte increments to stay ahead of the information you need.
Increasing the read-ahead count can improve read throughput up to a point. The optimal read-ahead setting will depend on your configuration and application. Increasing the read-ahead value beyond that setting may actually reduce throughput. In most cases, the optimal read-ahead setting is less than eight read-aheads (8 blocks)..
In the following procedure you can tune the nfs_nra and the nfs3_nra values independently. If a client is running Solaris the 2.5, 2.5.1, 2.6, or 7 operating environment, the client may need to tune nfs_nra (NFS version 2). This happens if the client is talking to a server that does not support version 3.
Add the following line to /etc/system on the NFS client.
set nfs:nfs_nra=4
Reboot the system to implement the read-ahead value.
Add the following line to /etc/system on the NFS client:
With versions of the Solaris software environment before the Solaris 2.6 software environment
set nfs:nfs3_nra=6
With the Solaris 2.6 operating environment, type:
set nfs:nfs3_nra=2
With the Solaris 7 operating environment type:
set nfs:nfs3_nra=4
Raising the read-ahead count too high can make read throughput worse. You may consider running benchmarks with different values of nfs3_nra or nfs_nra to see what works best in your environment.
Reboot the system to implement the read-ahead value.