NFS max “rsize” on Solaris – gotcha
When mounting NFS file systems there is an option to set the max rsize requested. For example:
mount -o rsize=1048576,wsize=1048576,proto=tcp,vers=3 192.168.1.10:/foo /foo
The general rsize used is 32K, for example in Oracle documentation, but for large sequential I/O the larger rsize can make a big difference. In some tests the larger rsize was twice as fast.
Unfortunately though, if the client is Solaris the larger rsize is ignored because of a kernel parameter. That parameter is nfs3_bsize which defaults to 32K and limits the rsize. To change the value either add it to /etc/system for use on reboot or for changing it immediately, use mdb:
mdb -kw > nfs3_bsize/D nfs3_bsize: nfs3_bsize: 32768 > nfs3_bsize/W 100000 nfs3_bsize: 0xd = 0x100000