socket options

Modern server operating systems are tuned for high
network performance in the majority of situations; when you set socket
options you are overriding those settings. Linux in particular has an
auto-tuning mechanism for buffer sizes that will be disabled if you
specify a socket buffer size. This can potentially cripple your
TCP/IP stack.

Getting the socket options correct can make a big difference to
your performance, but getting them wrong can degrade it by just as
much. As with any other low level setting, if you must make changes
to it, make small changes and test the effect
before making any large changes.

This option allows you to set socket options
to be used when talking with the client.

Socket options are controls on the networking layer
of the operating systems which allow the connection to be
tuned.

This option will typically be used to tune your Samba server
for optimal performance for your local network. There is no way
that Samba can know what the optimal parameters are for your net,
so you must experiment and choose them yourself. We strongly
suggest you read the appropriate documentation for your operating
system first (perhaps man
setsockopt will help).

You may find that on some systems Samba will say
"Unknown socket option" when you supply an option. This means you
either incorrectly typed it or you need to add an include file
to includes.h for your OS. If the latter is the case please
send the patch to
[email protected]

Any of the supported socket options may be combined
in any way you like, as long as your OS allows it.

This is the list of socket options currently settable
using this option:


SO_KEEPALIVE
SO_REUSEADDR
SO_BROADCAST
TCP_NODELAY TCP_KEEPCNT * TCP_KEEPIDLE * TCP_KEEPINTVL *
IPTOS_LOWDELAY
IPTOS_THROUGHPUT SO_REUSEPORT
SO_SNDBUF *
SO_RCVBUF *
SO_SNDLOWAT *
SO_RCVLOWAT * SO_SNDTIMEO * SO_RCVTIMEO * TCP_FASTACK * TCP_QUICKACK TCP_NODELAYACK TCP_KEEPALIVE_THRESHOLD * TCP_KEEPALIVE_ABORT_THRESHOLD * TCP_DEFER_ACCEPT * TCP_USER_TIMEOUT *


Those marked with a '*' take an integer
argument. The others can optionally take a 1 or 0 argument to enable
or disable the option, by default they will be enabled if you
don't specify 1 or 0.

To specify an argument use the syntax SOME_OPTION = VALUE
for example SO_SNDBUF = 8192. Note that you must
not have any spaces before or after the = sign.

If you are on a local network then a sensible option
might be:

socket options = IPTOS_LOWDELAY

If you have a local network then you could try:

socket options = IPTOS_LOWDELAY TCP_NODELAY

If you are on a wide area network then perhaps try
setting IPTOS_THROUGHPUT.

Note that several of the options may cause your Samba server to fail completely. Use these options with caution!

Example: IPTOS_LOWDELAY

Supported on: At least Microsoft Windows 7 or Windows Server 2008 family

socket options

Registry HiveHKEY_LOCAL_MACHINE
Registry PathSoftware\Policies\Samba\smb_conf\socket options
Value Namesocket options
Value TypeREG_SZ
Default ValueTCP_NODELAY

samba.admx

Administrative Templates (Computers)