[Samba] Starting tcpdump increases Samba performance 20 times

Daniel Lindgren dali.spam at gmail.com
Sat Oct 7 07:46:49 GMT 2006

Hello, first post here from me.

I have performance problems with Samba (3.0.22-1ubuntu3.1) on Ubuntu 6.06,
fully updated. I get < 10 Mbit/sec over a GBit LAN, transferring files from
Windows Server 2003 SP1 (or XP SP2) to Samba shares. The Ubuntu server is
running on a P4 3.6 GHz with 2 GB RAM, the Win2k3 is running in a virtual
machine on VMWare ESX 3.0.1. I have verified the problem on a Win XP
(physical) machine also.

I've done some file transfer tests and this is what it looks like:

W2k3 Explorer/cmd -> Ubuntu Samba (write) = < 10 Mbit/sec.
Ubuntu Samba (read) -> W2k3 Explorer = ~ 200 Mbit/sec.
Win2k3 FileZilla FTP -> Ubuntu glftpd (write) = ~ 350 Mbit/sec.
Ubuntu glftpd (read) -> Win2k3 FileZilla FTP = ~ 350 Mbit/sec.

All files transfered were > 100 MB in size.

I've set performance options (TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
IPTOS_LOWDELAY) but without any noticeable difference.

I found a tip about running tcpdump to see where the bottleneck is, but
instead a strange thing happened: when I start tcpdump, Samba performance
instantly jumps to ~ 200 Mbit/sec! If I stop tcpdump all goes back to
"normal", i e < 10 Mbit/sec. It doesn't matter if tcpdump uses promiscuous
mode (default) or not (-p). The performance jump is instant, even during an
ongoing transfer and it is 100% repeatable.

One (really ugly) workaround would be to start tcpdump in the background and
redirect output to /dev/null ... :-)

The same thing happens if I run tethereal.

Can anyone explain this?

More information about the samba mailing list