
how-to block ads
|
 Crypto Premium join:2001-01-07 Saint Charles, MO
| Re: OS X client, linux server, samba pain. said by MiloMindbend :Try this (on the OS X side): 'sudo sysctl -w net.inet.tcp.delayed_ack=0' DING DING DING DING DING!! And we have a winner! that sped it right up.
You say that this should do the same thing as putting TCP_NODELAY on the Linux samba server? Thats odd, because I did that already and didnt seem to have any results.
It's certainly much, much faster with delayed acks set to 0 on the OS X box. What are the ramifications to just leaving the OS X box like that? -- I may not agree with what you say, but I'll defend your right to encrypt it. | |
|   Crypto Premium join:2001-01-07 Saint Charles, MO
| Problem solved. Culprit: Bad Linux NIC/Driver Wow, after googling on the sysctl command milo posted here, I saw at least one instance of someone saying "I set this command on my BSD box because I was having problems with a realtek ethernet card that for some reason wasnt handling delayed ACKs well"
Well, I have a Linksys card, which had a realtek in it. So I shut down the venerable linux server thats been going for 5 years, and swapped out the linksys card with a spare Intel E100 I had.
I remmed out all the samba performance options I had tried, and set delayed acks back to 1 on the OS X box, and pulled a giant file down from the samba share.
And it hauled ass.
Thats damned near the strangest network problem I have ever seen in my life, and I have no way to explain it other than to chalk it up to bad linux driver code.
Thanks everyone, for their help, and specially thanks to Milomindbender for putting me on the right track. -- I may not agree with what you say, but I'll defend your right to encrypt it. | |
|  |  manifest bitches
join:2004-08-14 Hartford, CT
| Re: Problem solved. Culprit: Bad Linux NIC/Driver You know I should have realized this. Right around when I upgraded from 10.3 to 10.4 I also had to a motherboard replacement on my linux server. The NIC was also changed. I was using a realtek chipset and went to a 3com 3c905. Changing the nic must have done it for me as well. | |
|  MiloMindbend
join:2001-01-18 Jeannette, PA
| Re: OS X client, linux server, samba pain. said by Crypto :You say that this should do the same thing as putting TCP_NODELAY on the Linux samba server? Thats odd, because I did that already and didnt seem to have any results. It effectively does the same thing _on the Mac_ that the smb.conf TCP_NODELAY does _on the Linux box_. But it was the Linux box that was pausing because the Mac wasn't sending an ack to every packet, so you have to disable the delayed acks on the Mac.
You're supposed to be able to set socketopts in ~/.nsmbrc (disabling delayed acks just for the smbfs kernel extension, rather than for the whole system), but I never got that to work (hmm, wonder if it has to be in /etc/nsmbrc instead, since mount_smbfs is suid root)...
Anyway, I run into it infrequently enough that I just twiddle the sysctl knob. It gets the job done.  | |
|  |   z3r
@mpg.de
| Re: OS X client, linux server, samba pain. Hi.
Thanks for posting---I'm very glad to find a workaround for this problem, which was killing transfer speeds between a FreeBSD samba server with an Intel NIC and my OS 10.4 Powerbook client.
I'd like to try the nsmbrc solution you mention (and it seems plausible to put it in the root .nsmbrc) but documentation about .nsmbrc and its syntax is hard to find. All I find on my system and by Google is an "example file" with a few commented-out lines that seem irrelevant to this problem.
How would you, in principle, disable delayed acks in a nsmbrc config file?
cheers, --jez | |
|  |  |  MiloMindbend
join:2001-01-18 Jeannette, PA | Re: OS X client, linux server, samba pain. Same sort of thing as in smb.conf, iirc: "options TCP_NODELAY"
I'd start by pulling the smbfs kext source from OpenDarwin, though, and see if it actually even reads the nsmbrc files -- it could very well not. | |
|  |  |  |   z3r
@mpg.de
| Re: OS X client, linux server, samba pain. Thanks. I guess you must be write about the file being ignored. Certainly, appending
socket options = TCP_NODELAY
to /private/var/root/.nsmbrc (and also, for good measure, copying the resulting file to my $HOME and temporarily doing chmod go+r on both copies) doesn't change the behaviour. Estimate of time taken to transfer 152MB: 1 hour.
I guess sysctl twiddling must remain the solution. Irritating, but not serious. | |
|  |  |  |  |  MiloMindbend
join:2001-01-18 Jeannette, PA
| Re: OS X client, linux server, samba pain. said by z3r :
I guess sysctl twiddling must remain the solution. Irritating, but not serious. Well, there is another option, if it's a big enough PITA for you (it wasn't a big enough itch for me to scratch, personally -- I only have limited interaction with SMB shares):
Download the smbfs.kext source, tweak the socket options, rebuild it, and replace the original .kext with it (I'd rename the old one, not delete it . That's one of the neat things about Darwin -- the core OS _is_ open... | |
|  MiloMindbend
join:2001-01-18 Jeannette, PA
| said by Crypto :It's certainly much, much faster with delayed acks set to 0 on the OS X box. What are the ramifications to just leaving the OS X box like that? Sorry, forgot to answer that one. If you leave it like that, nothing will break, but your other network traffic will be less than optimal, as TCP will send an ack for every packet instead of combining them and acking several packets at a time. So just evaluate your typical network usage (with the most emphasis on local, high-speed stuff) -- if it's mostly SMB to a server that doesn't deal well with delayed acks, I'd normally leave it disabled. If that's a small percentage of your overall usage, I'd leave it at it's default. Heck, you could always wrap it with an Automator script and assign a hotkey to it to switch on demand.  | |
|  jfgrissom
join:2002-07-10 San Diego, CA
| This sudo sysctl -w net.inet.tcp.delayed_ack=0 is Awesome!
My DL times from Suse9.2 (I know OpenSuse10 is out, and it is FREE! I'm upgrading I swear!) SMB server to my Mac went from (this is no exageration) 90-150KB/sec to 900KB-1MB/sec.
It does look like it bursts though... (Hi speeds for 10 seconds -- sleep for 2 seconds -- hi speed again but that could be my slow Wifi-G connection)
It Also provides much much faster responce time if you wan to cancel transfers. This is good stuff... has anyone seen it break anything? | |
|  | |  |
|