summaryrefslogtreecommitdiff
path: root/docs/htmldocs/Samba3-HOWTO/speed.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/htmldocs/Samba3-HOWTO/speed.html')
-rw-r--r--docs/htmldocs/Samba3-HOWTO/speed.html174
1 files changed, 174 insertions, 0 deletions
diff --git a/docs/htmldocs/Samba3-HOWTO/speed.html b/docs/htmldocs/Samba3-HOWTO/speed.html
new file mode 100644
index 0000000000..a848b34012
--- /dev/null
+++ b/docs/htmldocs/Samba3-HOWTO/speed.html
@@ -0,0 +1,174 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 44. Samba Performance Tuning</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.0"><link rel="start" href="index.html" title="The Official Samba-3 HOWTO and Reference Guide"><link rel="up" href="Appendix.html" title="Part VI. Reference Section"><link rel="prev" href="Other-Clients.html" title="Chapter 43. Samba and Other CIFS Clients"><link rel="next" href="ch-ldap-tls.html" title="Chapter 45. LDAP and Transport Layer Security"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 44. Samba Performance Tuning</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Other-Clients.html">Prev</a> </td><th width="60%" align="center">Part VI. Reference Section</th><td width="20%" align="right"> <a accesskey="n" href="ch-ldap-tls.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="speed"></a>Chapter 44. Samba Performance Tuning</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Paul</span> <span class="surname">Cochrane</span></h3><div class="affiliation"><span class="orgname">Dundee Limb Fitting Centre<br></span><div class="address"><p><code class="email">&lt;<a href="mailto:paulc@dth.scot.nhs.uk">paulc@dth.scot.nhs.uk</a>&gt;</code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><code class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</code></p></div></div></div></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="speed.html#id445026">Comparisons</a></span></dt><dt><span class="sect1"><a href="speed.html#id445055">Socket Options</a></span></dt><dt><span class="sect1"><a href="speed.html#id445132">Read Size</a></span></dt><dt><span class="sect1"><a href="speed.html#id445163">Max Xmit</a></span></dt><dt><span class="sect1"><a href="speed.html#id445201">Log Level</a></span></dt><dt><span class="sect1"><a href="speed.html#id445220">Read Raw</a></span></dt><dt><span class="sect1"><a href="speed.html#id445265">Write Raw</a></span></dt><dt><span class="sect1"><a href="speed.html#id445302">Slow Logins</a></span></dt><dt><span class="sect1"><a href="speed.html#id445320">Client Tuning</a></span></dt><dt><span class="sect1"><a href="speed.html#id445339">Samba Performance Problem Due to Changing Linux Kernel</a></span></dt><dt><span class="sect1"><a href="speed.html#id445422">Corrupt tdb Files</a></span></dt><dt><span class="sect1"><a href="speed.html#id445511">Samba Performance is Very Slow</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445026"></a>Comparisons</h2></div></div></div><p>
+The Samba server uses TCP to talk to the client, so if you are
+trying to see if it performs well, you should really compare it to
+programs that use the same protocol. The most readily available
+programs for file transfer that use TCP are ftp or another TCP-based
+SMB server.
+</p><p>
+If you want to test against something like an NT or Windows for Workgroups server, then
+you will have to disable all but TCP on either the client or
+server. Otherwise, you may well be using a totally different protocol
+(such as NetBEUI) and comparisons may not be valid.
+</p><p>
+Generally, you should find that Samba performs similarly to ftp at raw
+transfer speed. It should perform quite a bit faster than NFS,
+although this depends on your system.
+</p><p>
+Several people have done comparisons between Samba and Novell, NFS, or
+Windows NT. In some cases Samba performed the best, in others the worst. I
+suspect the biggest factor is not Samba versus some other system, but the
+hardware and drivers used on the various systems. Given similar
+hardware, Samba should certainly be competitive in speed with other
+systems.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445055"></a>Socket Options</h2></div></div></div><p>
+There are a number of socket options that can greatly affect the
+performance of a TCP-based server like Samba.
+</p><p>
+The socket options that Samba uses are settable both on the command
+line with the <code class="option">-O</code> option and in the <code class="filename">smb.conf</code> file.
+</p><p>
+The <a class="indexterm" name="id445081"></a>socket options section of the <code class="filename">smb.conf</code> manual page describes how
+to set these and gives recommendations.
+</p><p>
+Getting the socket options correct can make a big difference to your
+performance, but getting them wrong can degrade it by just as
+much. The correct settings are very dependent on your local network.
+</p><p>
+The socket option TCP_NODELAY is the one that seems to make the biggest single difference
+for most networks. Many people report that adding
+<a class="indexterm" name="id445104"></a>socket options = TCP_NODELAY
+doubles the read performance of a Samba drive. The best explanation I have seen for
+this is that the Microsoft TCP/IP stack is slow in sending TCP ACKs.
+</p><p>
+There have been reports that setting <em class="parameter"><code>socket options = SO_RCVBUF=8192</code></em> in smb.conf
+can seriously degrade Samba performance on the loopback adaptor (IP Address 127.0.0.1). It is strongly
+recommended that before specifying any settings for <em class="parameter"><code>socket options</code></em>, the effect
+first be quantitatively measured on the server being configured.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445132"></a>Read Size</h2></div></div></div><p>
+The option <a class="indexterm" name="id445140"></a>read size affects the overlap of disk
+reads/writes with network reads/writes. If the amount of data being
+transferred in several of the SMB commands (currently SMBwrite, SMBwriteX, and
+SMBreadbraw) is larger than this value, then the server begins writing
+the data before it has received the whole packet from the network, or
+in the case of SMBreadbraw, it begins writing to the network before
+all the data has been read from disk.
+</p><p>
+This overlapping works best when the speeds of disk and network access
+are similar, having little effect when the speed of one is much
+greater than the other.
+</p><p>
+The default value is 16384, but little experimentation has been
+done as yet to determine the optimal value, and it is likely that the best
+value will vary greatly between systems anyway. A value over 65536 is
+pointless and will cause you to allocate memory unnecessarily.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445163"></a>Max Xmit</h2></div></div></div><p>
+ At startup the client and server negotiate a <em class="parameter"><code>maximum transmit</code></em> size,
+which limits the size of nearly all SMB commands. You can set the
+maximum size that Samba will negotiate using the <a class="indexterm" name="id445179"></a>max xmit option
+in <code class="filename">smb.conf</code>. Note that this is the maximum size of SMB requests that
+Samba will accept, but not the maximum size that the client will accept.
+The client maximum receive size is sent to Samba by the client, and Samba
+honors this limit.
+</p><p>
+It defaults to 65536 bytes (the maximum), but it is possible that some
+clients may perform better with a smaller transmit unit. Trying values
+of less than 2048 is likely to cause severe problems.
+In most cases the default is the best option.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445201"></a>Log Level</h2></div></div></div><p>
+If you set the log level (also known as <a class="indexterm" name="id445209"></a>debug level) higher than 2,
+then you may suffer a large drop in performance. This is because the
+server flushes the log file after each operation, which can be quite
+expensive.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445220"></a>Read Raw</h2></div></div></div><p>
+The <a class="indexterm" name="id445228"></a>read raw operation is designed to be an optimized, low-latency
+file read operation. A server may choose to not support it,
+however, and Samba makes support for <a class="indexterm" name="id445236"></a>read raw optional, with it
+being enabled by default.
+</p><p>
+In some cases clients do not handle <a class="indexterm" name="id445247"></a>read raw very well and actually
+get lower performance using it than they get using the conventional
+read operations, so you might like to try <a class="indexterm" name="id445255"></a>read raw = no and see what happens on your
+network. It might lower, raise, or not affect your performance. Only
+testing can really tell.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445265"></a>Write Raw</h2></div></div></div><p>
+The <a class="indexterm" name="id445273"></a>write raw operation is designed to be an optimized, low-latency
+file write operation. A server may choose to not support it, however, and Samba makes support for
+<a class="indexterm" name="id445282"></a>write raw optional, with it being enabled by default.
+</p><p>
+Some machines may find <a class="indexterm" name="id445292"></a>write raw slower than normal write, in which
+case you may wish to change this option.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445302"></a>Slow Logins</h2></div></div></div><p>
+Slow logins are almost always due to the password checking time. Using
+the lowest practical <a class="indexterm" name="id445311"></a>password level will improve things.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445320"></a>Client Tuning</h2></div></div></div><p>
+Often a speed problem can be traced to the client. The client (for
+example Windows for Workgroups) can often be tuned for better TCP
+performance. Check the sections on the various clients in
+<a href="Other-Clients.html" title="Chapter 43. Samba and Other CIFS Clients">Samba and Other CIFS Clients</a>.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445339"></a>Samba Performance Problem Due to Changing Linux Kernel</h2></div></div></div><p>
+A user wrote the following to the mailing list:
+</p><div class="blockquote"><blockquote class="blockquote"><p>
+<a class="indexterm" name="id445353"></a>
+<a class="indexterm" name="id445359"></a>
+I am running Gentoo on my server and Samba 2.2.8a. Recently I changed kernel versions from
+<code class="filename">linux-2.4.19-gentoo-r10</code> to <code class="filename">linux-2.4.20-wolk4.0s</code>. Now I have a
+performance issue with Samba. Many of you will probably say, &#8220;<span class="quote">Move to vanilla sources!</span>&#8221; Well, I
+tried that and it didn't work. I have a 100MB LAN and two computers (Linux and Windows 2000). The Linux server
+shares directories with DivX files, the client (Windows 2000) plays them via LAN. Before, when I was running
+the 2.4.19 kernel, everything was fine, but now movies freeze and stop. I tried moving files between the
+server and Windows, and it is terribly slow.
+</p></blockquote></div><p>
+The answer he was given is:
+</p><div class="blockquote"><blockquote class="blockquote"><p>
+<a class="indexterm" name="id445396"></a>
+<a class="indexterm" name="id445403"></a>
+<a class="indexterm" name="id445410"></a>
+Grab the mii-tool and check the duplex settings on the NIC. My guess is that it is a link layer issue, not an
+application layer problem. Also run ifconfig and verify that the framing error, collisions, and so on, look
+normal for ethernet.
+</p></blockquote></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445422"></a>Corrupt tdb Files</h2></div></div></div><p>
+<a class="indexterm" name="id445430"></a>
+<a class="indexterm" name="id445436"></a>
+<a class="indexterm" name="id445443"></a>
+Our Samba PDC server has been hosting three TB of data to our 500+ users [Windows NT/XP] for the last three
+years using Samba without a problem. Today all shares went very slow. Also, the main smbd kept spawning new
+processes, so we had 1600+ running SMDB's (normally we average 250). It crashed the SUN E3500 cluster twice.
+After a lot of searching, I decided to <code class="literal">rm /var/locks/*.tdb</code>. Happy again.
+</p><p>
+<span class="emphasis"><em>Question:</em></span> Is there any method of keeping the *.tdb files in top condition, or
+how can I detect early corruption?
+</p><p>
+<a class="indexterm" name="id445470"></a>
+<a class="indexterm" name="id445477"></a>
+<span class="emphasis"><em>Answer:</em></span> Yes, run <code class="literal">tdbbackup</code> each time after stopping nmbd and before starting nmbd.
+</p><p>
+<span class="emphasis"><em>Question:</em></span> What I also would like to mention is that the service latency seems
+a lot lower than before the locks cleanup. Any ideas on keeping it top notch?
+</p><p>
+<span class="emphasis"><em>Answer:</em></span> Yes. Same answer as for previous question!
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id445511"></a>Samba Performance is Very Slow</h2></div></div></div><p>
+<a class="indexterm" name="id445519"></a>
+A site reported experiencing very baffling symptoms with MYOB Premier opening and
+accessing its data files. Some operations on the file would take between 40 and
+45 seconds.
+</p><p>
+<a class="indexterm" name="id445531"></a>
+<a class="indexterm" name="id445538"></a>
+It turned out that the printer monitor program running on the Windows
+clients was causing the problems. From the logs, we saw activity coming
+through with pauses of about 1 second.
+</p><p>
+<a class="indexterm" name="id445549"></a>
+<a class="indexterm" name="id445556"></a>
+Stopping the monitor software resulted in the networks access at normal
+(quick) speed. Restarting the program caused the speed to slow down
+again. The printer was a Canon LBP-810 and the relevant task was
+something like CAPON (not sure on spelling). The monitor software
+displayed a "printing now" dialog on the client during printing.
+</p><p>
+We discovered this by starting with a clean install of Windows and
+trying the application at every step of the installation of other software
+process (we had to do this many times).
+</p><p>
+Moral of the story: Check everything (other software included)!
+</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Other-Clients.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="Appendix.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch-ldap-tls.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 43. Samba and Other CIFS Clients </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 45. LDAP and Transport Layer Security</td></tr></table></div></body></html>