1 <samba:parameter name="socket options"
5 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
9 <para>Modern server operating systems are tuned for high
10 network performance in the majority of situations; when you set socket
11 options you are overriding those settings. Linux in particular has an
12 auto-tuning mechanism for buffer sizes that will be disabled if you
13 specify a socket buffer size. This can potentially cripple your
16 <para> Getting the socket options correct can make a big difference to
17 your performance, but getting them wrong can degrade it by just as
18 much. As with any other low level setting, if you must make changes
19 to it, make small changes and <emphasis>test</emphasis> the effect
20 before making any large changes.</para>
24 <para>This option allows you to set socket options
25 to be used when talking with the client.</para>
27 <para>Socket options are controls on the networking layer
28 of the operating systems which allow the connection to be
31 <para>This option will typically be used to tune your Samba server
32 for optimal performance for your local network. There is no way
33 that Samba can know what the optimal parameters are for your net,
34 so you must experiment and choose them yourself. We strongly
35 suggest you read the appropriate documentation for your operating
36 system first (perhaps <command moreinfo="none">man
37 setsockopt</command> will help).</para>
39 <para>You may find that on some systems Samba will say
40 "Unknown socket option" when you supply an option. This means you
41 either incorrectly typed it or you need to add an include file
42 to includes.h for your OS. If the latter is the case please
43 send the patch to <ulink url="mailto:samba-technical@samba.org">
44 samba-technical@samba.org</ulink>.</para>
46 <para>Any of the supported socket options may be combined
47 in any way you like, as long as your OS allows it.</para>
49 <para>This is the list of socket options currently settable
50 using this option:</para>
53 <listitem><para>SO_KEEPALIVE</para></listitem>
54 <listitem><para>SO_REUSEADDR</para></listitem>
55 <listitem><para>SO_BROADCAST</para></listitem>
56 <listitem><para>TCP_NODELAY</para></listitem>
57 <listitem><para>IPTOS_LOWDELAY</para></listitem>
58 <listitem><para>IPTOS_THROUGHPUT</para></listitem>
59 <listitem><para>SO_SNDBUF *</para></listitem>
60 <listitem><para>SO_RCVBUF *</para></listitem>
61 <listitem><para>SO_SNDLOWAT *</para></listitem>
62 <listitem><para>SO_RCVLOWAT *</para></listitem>
65 <para>Those marked with a <emphasis>'*'</emphasis> take an integer
66 argument. The others can optionally take a 1 or 0 argument to enable
67 or disable the option, by default they will be enabled if you
68 don't specify 1 or 0.</para>
70 <para>To specify an argument use the syntax SOME_OPTION = VALUE
71 for example <command moreinfo="none">SO_SNDBUF = 8192</command>. Note that you must
72 not have any spaces before or after the = sign.</para>
74 <para>If you are on a local network then a sensible option
77 <para><command moreinfo="none">socket options = IPTOS_LOWDELAY</command></para>
79 <para>If you have a local network then you could try:</para>
81 <para><command moreinfo="none">socket options = IPTOS_LOWDELAY TCP_NODELAY</command></para>
83 <para>If you are on a wide area network then perhaps try
84 setting IPTOS_THROUGHPUT. </para>
86 <para>Note that several of the options may cause your Samba
87 server to fail completely. Use these options with caution!</para>
90 <value type="default">TCP_NODELAY</value>
91 <value type="example">IPTOS_LOWDELAY</value>