summaryrefslogtreecommitdiffstats
path: root/docs-xml/smbdotconf/tuning
diff options
context:
space:
mode:
Diffstat (limited to 'docs-xml/smbdotconf/tuning')
-rw-r--r--docs-xml/smbdotconf/tuning/aiomaxthreads.xml19
-rw-r--r--docs-xml/smbdotconf/tuning/aioreadsize.xml19
-rw-r--r--docs-xml/smbdotconf/tuning/aiowritebehind.xml24
-rw-r--r--docs-xml/smbdotconf/tuning/aiowritesize.xml24
-rw-r--r--docs-xml/smbdotconf/tuning/allocationroundupsize.xml28
-rw-r--r--docs-xml/smbdotconf/tuning/asyncdnstimeout.xml20
-rw-r--r--docs-xml/smbdotconf/tuning/blocksize.xml27
-rw-r--r--docs-xml/smbdotconf/tuning/checkparentdirectorydeleteonclose.xml13
-rw-r--r--docs-xml/smbdotconf/tuning/deadtime.xml27
-rw-r--r--docs-xml/smbdotconf/tuning/getwdcache.xml13
-rw-r--r--docs-xml/smbdotconf/tuning/hostnamelookups.xml15
-rw-r--r--docs-xml/smbdotconf/tuning/keepalive.xml22
-rw-r--r--docs-xml/smbdotconf/tuning/maxconnections.xml17
-rw-r--r--docs-xml/smbdotconf/tuning/maxdisksize.xml27
-rw-r--r--docs-xml/smbdotconf/tuning/maxopenfiles.xml22
-rw-r--r--docs-xml/smbdotconf/tuning/maxsmbdprocesses.xml24
-rw-r--r--docs-xml/smbdotconf/tuning/minprintspace.xml15
-rw-r--r--docs-xml/smbdotconf/tuning/namecachetimeout.xml14
-rw-r--r--docs-xml/smbdotconf/tuning/socketoptions.xml104
-rw-r--r--docs-xml/smbdotconf/tuning/strictallocate.xml40
-rw-r--r--docs-xml/smbdotconf/tuning/strictrename.xml34
-rw-r--r--docs-xml/smbdotconf/tuning/strictsync.xml40
-rw-r--r--docs-xml/smbdotconf/tuning/syncalways.xml21
-rw-r--r--docs-xml/smbdotconf/tuning/usemmap.xml17
-rw-r--r--docs-xml/smbdotconf/tuning/usesendfile.xml18
25 files changed, 644 insertions, 0 deletions
diff --git a/docs-xml/smbdotconf/tuning/aiomaxthreads.xml b/docs-xml/smbdotconf/tuning/aiomaxthreads.xml
new file mode 100644
index 0000000..3afe989
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/aiomaxthreads.xml
@@ -0,0 +1,19 @@
+<samba:parameter name="aio max threads"
+ type="integer"
+ context="G"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>
+ The integer parameter specifies the maximum number of
+ threads each smbd process will create when doing parallel asynchronous IO
+ calls. If the number of outstanding calls is greater than this
+ number the requests will not be refused but go onto a queue
+ and will be scheduled in turn as outstanding requests complete.
+ </para>
+
+ <related>aio read size</related>
+ <related>aio write size</related>
+</description>
+
+<value type="default">100</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/aioreadsize.xml b/docs-xml/smbdotconf/tuning/aioreadsize.xml
new file mode 100644
index 0000000..4785d2a
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/aioreadsize.xml
@@ -0,0 +1,19 @@
+<samba:parameter name="aio read size"
+ context="S"
+ type="bytes"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>If this integer parameter is set to a non-zero value,
+ Samba will read from files asynchronously when the request size is bigger
+ than this value. Note that it happens only for non-chained and non-chaining
+ reads and when not using write cache.</para>
+ <para>The only reasonable values for this parameter are 0 (no async I/O) and
+ 1 (always do async I/O).</para>
+ <related>write cache size</related>
+ <related>aio write size</related>
+</description>
+
+<value type="default">1</value>
+<value type="example">0<comment>Always do reads synchronously
+ </comment></value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/aiowritebehind.xml b/docs-xml/smbdotconf/tuning/aiowritebehind.xml
new file mode 100644
index 0000000..d60af71
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/aiowritebehind.xml
@@ -0,0 +1,24 @@
+<samba:parameter name="aio write behind"
+ context="S"
+ type="string"
+ substitution="1"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>If Samba has been built with asynchronous I/O support,
+ Samba will not wait until write requests are finished before returning
+ the result to the client for files listed in this parameter.
+ Instead, Samba will immediately return that the write
+ request has been finished successfully, no matter if the
+ operation will succeed or not. This might speed up clients without
+ aio support, but is really dangerous, because data could be lost
+ and files could be damaged.
+ </para>
+ <para>
+ The syntax is identical to the <smbconfoption name="veto files"/>
+ parameter.
+ </para>
+</description>
+
+<value type="default"/>
+<value type="example">/*.tmp/</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/aiowritesize.xml b/docs-xml/smbdotconf/tuning/aiowritesize.xml
new file mode 100644
index 0000000..1d649fe
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/aiowritesize.xml
@@ -0,0 +1,24 @@
+<samba:parameter name="aio write size"
+ context="S"
+ type="bytes"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>If this integer parameter is set to a non-zero value,
+ Samba will write to files asynchronously when the request size is bigger
+ than this value. Note that it happens only for non-chained and non-chaining
+ reads and when not using write cache.</para>
+ <para>The only reasonable values for this parameter are 0 (no async I/O) and
+ 1 (always do async I/O).</para>
+ <para>Compared to <smbconfoption name="aio read size"/> this parameter has
+ a smaller effect, most writes should end up in the
+ file system cache. Writes that require space allocation might
+ benefit most from going asynchronous.</para>
+
+ <related>write cache size</related>
+ <related>aio read size</related>
+</description>
+
+<value type="default">1</value>
+<value type="example">0<comment>Always do writes synchronously
+ </comment></value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/allocationroundupsize.xml b/docs-xml/smbdotconf/tuning/allocationroundupsize.xml
new file mode 100644
index 0000000..08aa621
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/allocationroundupsize.xml
@@ -0,0 +1,28 @@
+<samba:parameter name="allocation roundup size"
+ context="S"
+ type="bytes"
+ deprecated="1"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This parameter allows an administrator to tune the
+ allocation size reported to Windows clients. This is only
+ useful for old SMB1 clients because modern SMB dialects
+ eliminated that bottleneck and have better performance by
+ default. Using this parameter may cause
+ difficulties for some applications, e.g. MS Visual Studio.
+ If the MS Visual Studio compiler starts to crash with an
+ internal error, set this parameter to zero for this share.
+ Settings this parameter to a large value can also cause
+ small files to allocate more space on the disk than
+ needed.
+ </para>
+ <para>This parameter is deprecated and will be removed in
+ one of the next Samba releases.
+ </para>
+
+ <para>The integer parameter specifies the roundup size in bytes.</para>
+</description>
+
+<value type="default">0</value>
+<value type="example">1048576<comment>(to set it to the former default of 1 MiB)</comment></value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/asyncdnstimeout.xml b/docs-xml/smbdotconf/tuning/asyncdnstimeout.xml
new file mode 100644
index 0000000..522ef20
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/asyncdnstimeout.xml
@@ -0,0 +1,20 @@
+<samba:parameter name="async dns timeout"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>The number of seconds the asynchronous DNS
+ resolver code in Samba will wait for responses.
+ Some of the Samba client library code uses internal
+ asynchronous DNS resolution for A and AAAA records
+ when trying to find Active Directory Domain controllers.
+ This value prevents this name resolution code from
+ waiting for DNS server timeouts.
+ </para>
+ <para>The minimum value of this parameter is clamped
+ at 1 second.</para>
+</description>
+
+<value type="default">10</value>
+<value type="example">20</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/blocksize.xml b/docs-xml/smbdotconf/tuning/blocksize.xml
new file mode 100644
index 0000000..8d0dd8c
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/blocksize.xml
@@ -0,0 +1,27 @@
+<samba:parameter name="block size"
+ type="bytes"
+ context="S"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This parameter controls the behavior of <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> when reporting disk free
+ sizes. By default, this reports a disk block size of 1024 bytes.
+ </para>
+
+ <para>Changing this parameter may have some effect on the
+ efficiency of client writes, this is not yet confirmed. This
+ parameter was added to allow advanced administrators to change
+ it (usually to a higher value) and test the effect it has on
+ client write performance without re-compiling the code. As this
+ is an experimental option it may be removed in a future release.
+ </para>
+
+ <para>Changing this option does not change the disk free reporting
+ size, just the block size unit reported to the client.
+ </para>
+</description>
+
+<value type="default">1024</value>
+<value type="example">4096</value>
+
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/checkparentdirectorydeleteonclose.xml b/docs-xml/smbdotconf/tuning/checkparentdirectorydeleteonclose.xml
new file mode 100644
index 0000000..1de0609
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/checkparentdirectorydeleteonclose.xml
@@ -0,0 +1,13 @@
+<samba:parameter name="check parent directory delete on close"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>A Windows SMB server prevents the client from creating files in a
+ directory that has the delete-on-close flag set. By default Samba doesn't
+ perform this check as this check is a quite expensive operation in Samba.
+ </para>
+</description>
+
+<value type="default">no</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/deadtime.xml b/docs-xml/smbdotconf/tuning/deadtime.xml
new file mode 100644
index 0000000..77e0e5f
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/deadtime.xml
@@ -0,0 +1,27 @@
+<samba:parameter name="deadtime"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>The value of the parameter (a decimal integer)
+ represents the number of minutes of inactivity before a connection
+ is considered dead, and it is disconnected. The deadtime only takes
+ effect if the number of open files is zero.</para>
+
+ <para>This is useful to stop a server's resources being
+ exhausted by a large number of inactive connections.</para>
+
+ <para>Most clients have an auto-reconnect feature when a
+ connection is broken so in most cases this parameter should be
+ transparent to users.</para>
+
+ <para>Using this parameter with a timeout of a few minutes
+ is recommended for most systems.</para>
+
+ <para>A deadtime of zero indicates that no auto-disconnection
+ should be performed.</para>
+</description>
+
+<value type="default">10080</value>
+<value type="example">15</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/getwdcache.xml b/docs-xml/smbdotconf/tuning/getwdcache.xml
new file mode 100644
index 0000000..ec4d9ed
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/getwdcache.xml
@@ -0,0 +1,13 @@
+<samba:parameter name="getwd cache"
+ context="G"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This is a tuning option. When this is enabled a
+ caching algorithm will be used to reduce the time taken for getwd()
+ calls. This can have a significant impact on performance, especially
+ when the <smbconfoption name="wide links"/> parameter is set to <constant>no</constant>.</para>
+</description>
+
+<value type="default">yes</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/hostnamelookups.xml b/docs-xml/smbdotconf/tuning/hostnamelookups.xml
new file mode 100644
index 0000000..03678e9
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/hostnamelookups.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="hostname lookups"
+ context="G"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Specifies whether samba should use (expensive)
+ hostname lookups or use the ip addresses instead. An example place
+ where hostname lookups are currently used is when checking
+ the <command moreinfo="none">hosts deny</command> and <command moreinfo="none">hosts allow</command>.
+ </para>
+</description>
+
+<value type="default">no</value>
+<value type="example">yes</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/keepalive.xml b/docs-xml/smbdotconf/tuning/keepalive.xml
new file mode 100644
index 0000000..7fbe8cc
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/keepalive.xml
@@ -0,0 +1,22 @@
+<samba:parameter name="keepalive"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>The value of the parameter (an integer) represents
+ the number of seconds between <parameter moreinfo="none">keepalive</parameter>
+ packets. If this parameter is zero, no keepalive packets will be
+ sent. Keepalive packets, if sent, allow the server to tell whether
+ a client is still present and responding.</para>
+
+ <para>Keepalives should, in general, not be needed if the socket
+ has the SO_KEEPALIVE attribute set on it by default. (see <smbconfoption name="socket options"/>).
+Basically you should only use this option if you strike difficulties.</para>
+
+ <para>Please note this option only applies to SMB1 client connections, and
+ has no effect on SMB2 clients.</para>
+</description>
+
+<value type="default">300</value>
+<value type="example">600</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/maxconnections.xml b/docs-xml/smbdotconf/tuning/maxconnections.xml
new file mode 100644
index 0000000..1e3043b
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/maxconnections.xml
@@ -0,0 +1,17 @@
+<samba:parameter name="max connections"
+ context="S"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This option allows the number of simultaneous connections to a service to be limited.
+ If <parameter moreinfo="none">max connections</parameter> is greater than 0 then connections
+ will be refused if this number of connections to the service are already open. A value
+ of zero mean an unlimited number of connections may be made.</para>
+
+ <para>Record lock files are used to implement this feature. The lock files will be stored in
+ the directory specified by the <smbconfoption name="lock directory"/> option.</para>
+</description>
+
+<value type="default">0</value>
+<value type="example">10</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/maxdisksize.xml b/docs-xml/smbdotconf/tuning/maxdisksize.xml
new file mode 100644
index 0000000..0361358
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/maxdisksize.xml
@@ -0,0 +1,27 @@
+<samba:parameter name="max disk size"
+ context="G"
+ type="bytes"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This option allows you to put an upper limit
+ on the apparent size of disks. If you set this option to 100
+ then all shares will appear to be not larger than 100 MB in
+ size.</para>
+
+ <para>Note that this option does not limit the amount of
+ data you can put on the disk. In the above case you could still
+ store much more than 100 MB on the disk, but if a client ever asks
+ for the amount of free disk space or the total disk size then the
+ result will be bounded by the amount specified in <parameter moreinfo="none">max
+ disk size</parameter>.</para>
+
+ <para>This option is primarily useful to work around bugs
+ in some pieces of software that can't handle very large disks,
+ particularly disks over 1GB in size.</para>
+
+ <para>A <parameter moreinfo="none">max disk size</parameter> of 0 means no limit.</para>
+</description>
+
+<value type="default">0</value>
+<value type="example">1000</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/maxopenfiles.xml b/docs-xml/smbdotconf/tuning/maxopenfiles.xml
new file mode 100644
index 0000000..f873ef7
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/maxopenfiles.xml
@@ -0,0 +1,22 @@
+<samba:parameter name="max open files"
+ type="integer"
+ context="G"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This parameter limits the maximum number of
+ open files that one <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> file
+ serving process may have open for a client at any one time.
+ This parameter can be set very high (16384) as Samba uses
+ only one bit per unopened file. Setting this parameter lower than
+ 16384 will cause Samba to complain and set this value back to
+ the minimum of 16384, as Windows 7 depends on this number of
+ open file handles being available.</para>
+
+ <para>The limit of the number of open files is usually set
+ by the UNIX per-process file descriptor limit rather than
+ this parameter so you should never need to touch this parameter.</para>
+</description>
+
+<value type="default">16384</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/maxsmbdprocesses.xml b/docs-xml/smbdotconf/tuning/maxsmbdprocesses.xml
new file mode 100644
index 0000000..f5b1e42
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/maxsmbdprocesses.xml
@@ -0,0 +1,24 @@
+<samba:parameter name="max smbd processes"
+ type="integer"
+ context="G"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This parameter limits the maximum number of <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> processes concurrently running on a system and is intended
+ as a stopgap to prevent degrading service to clients in the event that the server has insufficient
+ resources to handle more than this number of connections. Remember that under normal operating
+ conditions, each user will have an <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> associated with him or her to handle connections to all
+ shares from a given host.</para>
+
+ <para>For a Samba ADDC running the standard process model this option
+ limits the number of processes forked to handle requests.
+ Currently new processes are only forked for ldap and netlogon
+ requests.
+ </para>
+
+</description>
+
+<value type="default">0</value>
+<value type="example">1000</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/minprintspace.xml b/docs-xml/smbdotconf/tuning/minprintspace.xml
new file mode 100644
index 0000000..b5bba27
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/minprintspace.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="min print space"
+ context="S"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This sets the minimum amount of free disk
+ space that must be available before a user will be able to spool
+ a print job. It is specified in kilobytes. The default is 0, which
+ means a user can always spool a print job.</para>
+</description>
+
+<related>printing</related>
+<value type="default">0</value>
+<value type="example">2000</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/namecachetimeout.xml b/docs-xml/smbdotconf/tuning/namecachetimeout.xml
new file mode 100644
index 0000000..4d29194
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/namecachetimeout.xml
@@ -0,0 +1,14 @@
+<samba:parameter name="name cache timeout"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Specifies the number of seconds it takes before
+ entries in samba's hostname resolve cache time out. If
+ the timeout is set to 0. the caching is disabled.
+</para>
+</description>
+
+<value type="default">660</value>
+<value type="example">0</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/socketoptions.xml b/docs-xml/smbdotconf/tuning/socketoptions.xml
new file mode 100644
index 0000000..d2be514
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/socketoptions.xml
@@ -0,0 +1,104 @@
+<samba:parameter name="socket options"
+ context="G"
+ type="string"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>
+ <warning>
+ <para>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.</para>
+
+ <para> 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 <emphasis>test</emphasis> the effect
+ before making any large changes.</para>
+ </warning>
+ </para>
+
+ <para>This option allows you to set socket options
+ to be used when talking with the client.</para>
+
+ <para>Socket options are controls on the networking layer
+ of the operating systems which allow the connection to be
+ tuned.</para>
+
+ <para>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 <command moreinfo="none">man
+ setsockopt</command> will help).</para>
+
+ <para>You may find that on some systems Samba will say
+ &quot;Unknown socket option&quot; 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 <ulink url="mailto:samba-technical@lists.samba.org">
+ samba-technical@lists.samba.org</ulink>.</para>
+
+ <para>Any of the supported socket options may be combined
+ in any way you like, as long as your OS allows it.</para>
+
+ <para>This is the list of socket options currently settable
+ using this option:</para>
+
+ <itemizedlist>
+ <listitem><para>SO_KEEPALIVE</para></listitem>
+ <listitem><para>SO_REUSEADDR</para></listitem>
+ <listitem><para>SO_BROADCAST</para></listitem>
+ <listitem><para>TCP_NODELAY</para></listitem>
+ <listitem><para>TCP_KEEPCNT *</para></listitem>
+ <listitem><para>TCP_KEEPIDLE *</para></listitem>
+ <listitem><para>TCP_KEEPINTVL *</para></listitem>
+ <listitem><para>IPTOS_LOWDELAY</para></listitem>
+ <listitem><para>IPTOS_THROUGHPUT</para></listitem>
+ <listitem><para>SO_REUSEPORT</para></listitem>
+ <listitem><para>SO_SNDBUF *</para></listitem>
+ <listitem><para>SO_RCVBUF *</para></listitem>
+ <listitem><para>SO_SNDLOWAT *</para></listitem>
+ <listitem><para>SO_RCVLOWAT *</para></listitem>
+ <listitem><para>SO_SNDTIMEO *</para></listitem>
+ <listitem><para>SO_RCVTIMEO *</para></listitem>
+ <listitem><para>TCP_FASTACK *</para></listitem>
+ <listitem><para>TCP_QUICKACK</para></listitem>
+ <listitem><para>TCP_NODELAYACK</para></listitem>
+ <listitem><para>TCP_KEEPALIVE_THRESHOLD *</para></listitem>
+ <listitem><para>TCP_KEEPALIVE_ABORT_THRESHOLD *</para></listitem>
+ <listitem><para>TCP_DEFER_ACCEPT *</para></listitem>
+ <listitem><para>TCP_USER_TIMEOUT *</para></listitem>
+ </itemizedlist>
+
+ <para>Those marked with a <emphasis>'*'</emphasis> 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.</para>
+
+ <para>To specify an argument use the syntax SOME_OPTION = VALUE
+ for example <command moreinfo="none">SO_SNDBUF = 8192</command>. Note that you must
+ not have any spaces before or after the = sign.</para>
+
+ <para>If you are on a local network then a sensible option
+ might be:</para>
+
+ <para><command moreinfo="none">socket options = IPTOS_LOWDELAY</command></para>
+
+ <para>If you have a local network then you could try:</para>
+
+ <para><command moreinfo="none">socket options = IPTOS_LOWDELAY TCP_NODELAY</command></para>
+
+ <para>If you are on a wide area network then perhaps try
+ setting IPTOS_THROUGHPUT. </para>
+
+ <para>Note that several of the options may cause your Samba
+ server to fail completely. Use these options with caution!</para>
+</description>
+
+<value type="default">TCP_NODELAY</value>
+<value type="example">IPTOS_LOWDELAY</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/strictallocate.xml b/docs-xml/smbdotconf/tuning/strictallocate.xml
new file mode 100644
index 0000000..bd867da
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/strictallocate.xml
@@ -0,0 +1,40 @@
+<samba:parameter name="strict allocate"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This is a boolean that controls the handling of
+ disk space allocation in the server. When this is set to <constant>yes</constant>
+ the server will change from UNIX behaviour of not committing real
+ disk storage blocks when a file is extended to the Windows behaviour
+ of actually forcing the disk system to allocate real storage blocks
+ when a file is created or extended to be a given size. In UNIX
+ terminology this means that Samba will stop creating sparse files.</para>
+
+ <para>This option is really designed for file systems that support
+ fast allocation of large numbers of blocks such as extent-based file systems.
+ On file systems that don't support extents (most notably ext3) this can
+ make Samba slower. When you work with large files over >100MB on file
+ systems without extents you may even run into problems with clients
+ running into timeouts.</para>
+
+ <para>When you have an extent based filesystem it's likely that we can make
+ use of unwritten extents which allows Samba to allocate even large amounts
+ of space very fast and you will not see any timeout problems caused by
+ strict allocate. With strict allocate in use you will also get much better
+ out of quota messages in case you use quotas. Another advantage of
+ activating this setting is that it will help to reduce file
+ fragmentation.</para>
+
+ <para>To give you an idea on which filesystems this setting might currently
+ be a good option for you: XFS, ext4, btrfs, ocfs2 on Linux and JFS2 on
+ AIX support unwritten extents. On Filesystems that do not support it,
+ preallocation is probably an expensive operation where you will see reduced
+ performance and risk to let clients run into timeouts when creating large
+ files. Examples are ext3, ZFS, HFS+ and most others, so be aware if you
+ activate this setting on those filesystems.</para>
+
+</description>
+
+<value type="default">no</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/strictrename.xml b/docs-xml/smbdotconf/tuning/strictrename.xml
new file mode 100644
index 0000000..91572f2
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/strictrename.xml
@@ -0,0 +1,34 @@
+<samba:parameter name="strict rename"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>By default a Windows SMB server prevents directory
+ renames when there are open file or directory handles below
+ it in the filesystem hierarchy. Historically Samba has always
+ allowed this as POSIX filesystem semantics require it.</para>
+
+ <para>This boolean parameter allows Samba to match the Windows
+ behavior. Setting this to "yes" is a very expensive change,
+ as it forces Samba to travers the entire open file handle
+ database on every directory rename request. In a clustered
+ Samba system the cost is even greater than the non-clustered
+ case.</para>
+
+ <para>When set to "no" smbd only checks the local process
+ the client is attached to for open files below a directory
+ being renamed, instead of checking for open files across all
+ smbd processes.</para>
+
+ <para>Because of the expense in fully searching the database,
+ the default is "no", and it is recommended to be left that way
+ unless a specific Windows application requires it to be changed.</para>
+
+ <para>If the client has requested UNIX extensions (POSIX
+ pathnames) then renames are always allowed and this parameter
+ has no effect.</para>
+
+</description>
+
+<value type="default">no</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/strictsync.xml b/docs-xml/smbdotconf/tuning/strictsync.xml
new file mode 100644
index 0000000..f2e3788
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/strictsync.xml
@@ -0,0 +1,40 @@
+<samba:parameter name="strict sync"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+ <description>
+ <para>This parameter controls whether Samba honors a request
+ from an SMB client to ensure any outstanding operating system
+ buffer contents held in memory are safely written onto stable
+ storage on disk. If set to <constant>yes</constant>, which is
+ the default, then Windows applications can force the smbd server
+ to synchronize unwritten data onto the disk. If set to
+ <constant>no</constant> then smbd will ignore client
+ requests to synchronize unwritten data onto stable storage on
+ disk.</para>
+
+ <para>In Samba 4.7.0, the default for this parameter changed from
+ <constant>no</constant> to <constant>yes</constant> to better
+ match the expectations of SMB2/3 clients and improve application
+ safety when running against smbd.</para>
+
+ <para>The flush request from SMB2/3 clients is handled
+ asynchronously inside smbd, so leaving the parameter as the default
+ value of <constant>yes</constant> does not block the processing of
+ other requests to the smbd process.</para>
+
+ <para>Legacy Windows applications (such as the Windows 98 explorer
+ shell) seemed to confuse writing buffer contents to the operating
+ system with synchronously writing outstanding data onto stable storage
+ on disk. Changing this parameter to <constant>no</constant> means that
+ <citerefentry><refentrytitle>smbd</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> will ignore the Windows
+ applications request to synchronize unwritten data onto disk. Only
+ consider changing this if smbd is serving obsolete SMB1 Windows clients
+ prior to Windows XP (Windows 98 and below). There should be no need to
+ change this setting for normal operations.</para>
+</description>
+
+<related>sync always</related>
+<value type="default">yes</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/syncalways.xml b/docs-xml/smbdotconf/tuning/syncalways.xml
new file mode 100644
index 0000000..9a095d5
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/syncalways.xml
@@ -0,0 +1,21 @@
+<samba:parameter name="sync always"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This is a boolean parameter that controls
+ whether writes will always be written to stable storage before
+ the write call returns. If this is <constant>no</constant> then the server will be
+ guided by the client's request in each write call (clients can
+ set a bit indicating that a particular write should be synchronous).
+ If this is <constant>yes</constant> then every write will be followed by a <command moreinfo="none">fsync()
+ </command> call to ensure the data is written to disk. Note that
+ the <parameter moreinfo="none">strict sync</parameter> parameter must be set to
+ <constant>yes</constant> in order for this parameter to have
+ any effect.</para>
+</description>
+
+<related>strict sync</related>
+
+<value type="default">no</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/usemmap.xml b/docs-xml/smbdotconf/tuning/usemmap.xml
new file mode 100644
index 0000000..40ca7b9
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/usemmap.xml
@@ -0,0 +1,17 @@
+<samba:parameter name="use mmap"
+ context="G"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>This global parameter determines if the tdb internals of Samba can
+ depend on mmap working correctly on the running system. Samba requires a coherent
+ mmap/read-write system memory cache. Currently only OpenBSD and HPUX do not have such a
+ coherent cache, and on those platforms this parameter is overridden internally
+ to be effeceively <constant>no</constant>. On all systems this parameter should be left alone. This
+ parameter is provided to help the Samba developers track down problems with
+ the tdb internal code.
+ </para>
+</description>
+
+<value type="default">yes</value>
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/tuning/usesendfile.xml b/docs-xml/smbdotconf/tuning/usesendfile.xml
new file mode 100644
index 0000000..46255cd
--- /dev/null
+++ b/docs-xml/smbdotconf/tuning/usesendfile.xml
@@ -0,0 +1,18 @@
+<samba:parameter name="use sendfile"
+ context="S"
+ type="boolean"
+ function="_use_sendfile"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>If this parameter is <constant>yes</constant>, and the <constant>sendfile()</constant>
+ system call is supported by the underlying operating system, then some SMB read calls
+ (mainly ReadAndX and ReadRaw) will use the more efficient sendfile system call for files that
+ are exclusively oplocked. This may make more efficient use of the system CPU's
+ and cause Samba to be faster. Samba automatically turns this off for clients
+ that use protocol levels lower than NT LM 0.12 and when it detects a client is
+ Windows 9x (using sendfile from Linux will cause these clients to fail).
+ </para>
+</description>
+
+<value type="default">no</value>
+</samba:parameter>