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