Doug VanLeuven wrote:
Mark Smith wrote:
I also tried your values, with the tcp_window_scaling, with no luck.
It's enable by default, but I explicitly set options other options depend on.

Reasonable idea.  :)

I set up my test rig again.
Host server
2.6.12-1.1376_FC3, samba 3.0.23
Broadcom Nextreme BCM5702X Gigabit, tg3 driver default config
Client
2.6.12-1.1381_FC3, samba 3.0.21pre3-SVN-build-11739
Intel Pro/1000, 82546GB Gigabit, e1000 driver default config
HD Drives on both are 45-50MBps

smbclient 26.7-27.2MBps
ftp 25.4 MBps (small window size)

Yeah, see, that's the difference. With FTP and HTTP, I'm seeing the ~60MBps numbers, but SMB is still down at about 22MBps, not even the 27MBps you're seeing.

FWIW - I'm used to seeing CIFS performance numbers 5-10% slower than ftp.

5-10% wouldn't surprise me, but 70% slower disturbs me.

Using ethereal to capture the start of the transfers, I'm seeing windows ftp negotiate a 256960 window size, which is what I have specified in HKLM/system/currcontrolset/services/tcpip/parameters/TcpWindowSize, but linux samba establishes a window size of whatever is specified for SO_SNDBUF in socket options or by default 8K. So I set SO_SNDBUF=256960 and it gave me the extra large window and raised the speed up to 27.3MBps (1048576 Megs) - not enough to really address your concerns.

Actually, setting SNDBUF and RCVBUF to 65536 from the default of 8192 is what got me _TO_ 22MBps...

...Ya know, I once tried increasing SNDBUF and RCVBUF to 256k but didn't see any difference. I've also tried setting the kernel parameters to 256k, but never both at the same time. Let me try that and see if it helps.

Maybe it would be different on your system. That's an issue for samba because it should allow for autonegotiation of the window size and I don't know how to set that other than ipv4.tcp_window_scaling=1 (the default). SO_SNDBUF & SO_RCVBUF are only limited by the /proc/sys values* *net.core.rmem_max and net.core.wmem_max which you altered after the earlier post.

See above.  I've set both, but never at the same time.  Let me try that.

Comparing the linux ftp to linux samba transfer speeds, I don't think the answer lies in samba per se other than how the socket gets set up.

I thought this too, but Ethereal shows that the Windows client is ACKing the TCP stream after only a couple or three packets, no where near the 32k Window size that is negotiated. So if Windows were delaying the ACK, Linux would still be sending more packets to it. The sent packets are roughly evenly spaced in time, and we're getting them ACKed every two or three packets. It really doesn't look like a TCP Window size problem. (This was the very first path I went down.)

And it's not a linux issue either if you're getting those http numbers (I never see anything like that here). Your Redhat is obviously tuned for those types of packets. Maybe you using the in-kernel optimized apache they offer. If so, try a user space apache for comparison.

Nope.  Stock Apache 2 as distributed with RedHat AS4-U3.

I smacked up against these numbers 2 years ago. Nothing much seems to have changed. The numbers end up in the low to mid 200Mbps on copper Gigabit for user space applications. If you ever fix it, pop me an email please. I figured the answer would be pci-x and 64 bit pci. Higher front side bus speeds.

I will definitely post whatever solution I find here. Thanks for your help, Doug.

-Mark
--
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to