Samba 3.0.1 read performance problem
rsharpe at richardsharpe.com
Sun Jan 18 20:27:32 GMT 2004
On Sun, 18 Jan 2004, Gerhard Wiesinger wrote:
> I have a 100MBit switched network and run Samba 3.0.1 in a Samba
> 2.2.8a domain (3.0.1 because of valid users = %S, and write list = %S fixes) on Fedora FC1 with
> latest fixes.
> Read performance from Linux to Windows 2000 SP3 is very low
> (around 2 to 4 MByte/s). Write performance is ok (>10MByte/s).
> I already used
> socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
> (which is the performance optimum, other values are lower).
Why do you think that SO_SNDBUF is the performance optimum?
What is the delay-bandwidth product of the link between the clients? At
100Mbps, that is approximately 12MBytes/sec, so a 1ms round trip time
would give a delay bandwitdh product of 12kBytes/s, and you are already
lower than that.
Setting SO_SNDBUF to 8192 means that the higher layers (Samba) can only
put 8192 bytes of data into the socket buffers before it is forced to wait
for the data to be acked. This is regardless of the window size that is
offered by the other end!
I would venture to say that leaving those values unset, or setting them to
65536 would give you better throughput!
Grab an ethereal trace and look at a TCP Sequence Number graph. You should
see a stair-case effect caused by the delay between segments/packets as
the sending end is forced to wait for ACKs to clear out the unacknowledged
data in the send socket queue.
> Netio and ftp performance is >10MByte/s, in most cases >11MByte/s (for
> reads and writes)
> Server: Linux Fedora FC1 with kernel 2.4.22-1.2149.nptl on an Epox 8KRA2+
> Motherboard. Network adapter is a Gigabit Ethernet from Longshine
> (rtl8169 driver).
> No special configuration is used.
> Any ideas?
> Thank you for the answer.
Richard Sharpe, rsharpe[at]richardsharpe.com, rsharpe[at]samba.org,
More information about the samba-technical