sync machine password to keytab: handle FreeIPA use case
[Samba.git] / docs-xml / smbdotconf / tuning / socketoptions.xml
blobd2be5148fde08f1b33e6acbe68a718a899630c81
1 <samba:parameter name="socket options"
2                  context="G"
3                                  type="string"
4                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
5 <description>
6     <para>
7         <warning>
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
13         TCP/IP stack.</para>
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>
20         </warning>
21     </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 
28     tuned.</para>
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     &quot;Unknown socket option&quot; 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>
51     <itemizedlist>
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>
75     </itemizedlist>
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 
87     might be:</para>
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>
100 </description>
102 <value type="default">TCP_NODELAY</value>
103 <value type="example">IPTOS_LOWDELAY</value>
104 </samba:parameter>