Thursday, August 20, 2009

NetApp NFS mount for Sun Solaris 10 (64 bit)

In this post I have tried to cover mount options and other settings related to Solaris for higher throughput from NFS, which is more towards 64 bit although these settings apply to even 32 bit but a few extra settings gets counted when you think of 32 bit version, like super caching as I can remember because this list I have complied long back and still it's very handy to me when I get some complain about low performance. For any further details you can look in references section.

Mount options

rw,bg,hard,nointr,rsize=32768,wsize=32768,vers=3,proto=tcp

Kernel Tuning

Parameter

Replaced by (Resource Control)

Recommended Minimum Value

noexec_user_stack

NA

1

semsys:seminfo_semmni

project.max-sem-ids

100

semsys:seminfo_semmns

NA

1024

semsys:seminfo_semmsl

project.max-sem-nsems

256

semsys:seminfo_semvmx

NA

32767

shmsys:shminfo_shmmax

project.max-shm-memory

4294967296

shmsys:shminfo_shmmni

project.max-shm-ids

100

On Solaris 10, the following kernel parameters should be set to the shown value, or higher.

Solaris file descriptors

rlim_fd_cur – "Soft" limit on the number of file descriptors (and sockets) that a single process can have open

rlim_fd_max – "Hard" limit on the number of file descriptors (and sockets) that a single process can have open

Setting these values to 1024 is strongly recommended to avoid database crashes resulting from Solaris resource deprivation.

Network Settings

Parameter

Value

Details

/dev/tcp tcp_recv_hiwat

65,535

increases TCP receive buffer

/dev/tcp tcp_xmit_hiwat

65,535

increases TCP transmit buffer

/dev/ge adv_pauseTX

1

Enables transmit flow control

/dev/ge adv_pauseRX

1

Enables receive flow control

/dev/ge adv_1000fdx_cap

1

forces full duplex for GBE ports

/dev/tcp tcp_xmit_hiwat

65536

Increases TCP transmit high watermark

/dev/tcp tcp_recv_hiwat

65536

Increases TCP receive high watermark

sq_max_size Sets the maximum number of messages allowed for each IP queue (STREAMS synchronized queue). Increasing this value improves network performance. A safe value for this parameter is 25 for each 64MB of physical memory in a Solaris system up to a maximum value of 100. The parameter can be optimized by starting at 25 and incrementing by 10 until network performance reaches a peak.

Nstrpush – Determines the maximum number of modules that can be pushed onto a stream and should be set to 9

References

NetApp Technical Teport tr-3633, tr-3496, tr-3322,

NetApp Knowledge Base Article 7518

No comments: