[oclug] Samba Problems - SLOW coppies to Windows Client
Damian Gerow
dgerow at afflictions.org
Fri Nov 7 14:46:25 EST 2008
Dave Lewis wrote:
> The hardware probably can't handle full 1GB but it should be way more
> than 199KB/s :) the server is a true Compaq server so the backplane is
> designed to handle a fair chunk of data, but your right full rate 1GB is
> asking a lot from it.
But, like you said, it should be able to -- can definitely can -- handle
more than 200KBps. It was more just idle speculation on my part; I'm
curious to see what kind of bandwidth you're actually getting. Given the
tests below, looks like somewhere around 500Mbps, which is about what I
expected.
> As far as Architecture goes, they are both local (2 rooms apart) off of
> the same switch. Flat earth as far as these box's are concerned.
> I even just changed the switch to a spare cisco 3550 that I had here,
> just to make sure..
Always a good thing to try.
> Here are some more test... None are Super quick, but the biggest number
> of interest to me is that a single large file seems way better than the
> directory with smaller files in it..
That doesn't surprise me. There's a fair bit of overhead in any protocol
involved in saying, "Okay, I'm done, let's close off this file.", "All
closed off, now what's the next file?", and "Alright, I'm ready, start
transferring."
> From 2003 and desktop to linux box
>
> ------------------------------------------------------------
> Server listening on TCP port 5001
> TCP window size: 85.3 KByte (default)
> ------------------------------------------------------------
> [ 4] local linux port 5001 connected with vista port 54804
> [ 4] 0.0-10.0 sec 74.2 MBytes 62.2 Mbits/sec
> [ 4] local linux port 5001 connected with server2003 port 23879
> [ 4] 0.0-10.0 sec 81.3 MBytes 68.2 Mbits/sec
>
> Vista to 2003
>
> E:\Dave's Desktop>iperf.exe -c 10.10.10.11
> ------------------------------------------------------------
> Client connecting to server2003, TCP port 5001
> TCP window size: 8.00 KByte (default)
> ------------------------------------------------------------
> [108] local vista port 54823 connected with server2003 port 5001
> [ ID] Interval Transfer Bandwidth
> [108] 0.0-10.0 sec 77.3 MBytes 64.8 Mbits/sec
Okay, we can definitely say that raw bandwidth is *not* an issue. However,
I *do* need to point something out:
Check out your window sizes. In the first test, you've got an 85K window.
While perhaps a little large for a local network, it's not unreasonably
large, and certainly won't hurt you.
Your window from Vista to 2003 is a touch small. I'm going to assume that
Vista is using the dynamic window sizing algorithm(s) to ensure
appropriately sized windows. Just something to keep in mind...
> FTP of a 115meg file from vista to Linux box averages 9,700KB/s
> Copy of 115meg File from Vista to Linux averages 4MB/s
> Read of 115Meg File from Linux to Vista averages 5MB/s
> Read of 242meg directory (18,000 files in sub dirs) from linux to vista
> 124KB/s < --- THIS ONE Sucks...
Ah, okay then. So SAMBA is definitely slower than FTP (but then again, it
*is* slower than FTP), but the kicker is the hundreds of little files.
> Copying of 115meg file from Vista to Server2003 average of 9.5MB/s
> FTP of 115meg file from Vista to Server2003 average of 7,600 KB/s
Unfortunately, this just outlines the fact that SAMBA is slower than native
Windows.
> Copying of 115meg file from Server2003 to linux 25seconds = 4.6MB/s
> FTP of 115meg File from Server2003 to linux 13.13sec = 8.62 MB/s =
> 9045.18KB/s
And this re-inforces it.
> As far as the config file, I've put back in the 64K buffers, and I have
> tried master browser and os levels in and out. I haven't set
> up a WINS server and the linux box really shouldn't be the master browser
> anyway, it should be the 2003 server. You really
> think adding a WINS server would help ?
Well, given the rest of your configuration, it looked like you were trying
to get the Linux box to be the master browser. But no, I don't think it
will help this specific issue, but it may help with overall ease-of-use.
There's really only two things left to do:
1) Crank up the debug logging, and run a small sample of tests. You likely
only need to perform a large read OR write, and a directory with a large
number of files. Even that is going to produce a significantly sized log.
2) Grab a tcpdump of the network activity as its going on. (Or Wireshark,
whatever you like.) Note that you'll want to capture the full packet; some
of the SMB headers extend beyond the 96-byte default that tcpdump uses.
Oh, wait, 3) Upgrade to the latest version. There may be speed
improvements; I know that SAMBA with Vista is a work-in-progress, and you
may find that newer releases play better.
Of course, you could always hit up the SAMBA lists, since I'm not really
helping a whole lot here.
- Damian
More information about the OCLUG
mailing list