very slow file transfer from OSX to win2000

firewall

Registered
using smb I mounted a shared folder from my windows 2000 pro computer. I am getting extremly slow transfer.

I am using a linksys 4 ports hub/router 10/100

I have a dlink 10/100 on the pc and a gigabit on my g4

the file transfer speed is apx 170k/s ( 1.7mb per 10sec interval)

shouldn't i get close to 1.25mb/s with 10megabits card and 12.5mb with 100megabits cards?

the indicator on the router/hub shows connected at 100 megabits

any suggestion would be welcome
 

Solaris

Official something...
I'm not sure, it may be that you are only connected at half duplex. Is the slowness in both or only one direction?
 

firewall

Registered
actually i just tested it anf it is about 4 times faster transfering from the PC-mac compare to mac-PC

still only about 600k/swhich is about 5megabits/sec

how do you set that duplex thing?

thanks
 

homer

Safety Inspector
Just to throw in my two cents, I've experienced this problem, running cable directly between my PC (10/100 3Com card) and my iMac running OSX. I'd welcome any suggestions too.
 

Solaris

Official something...
I'm only running 9.2.1 at the moment so I can't verify these following commands. If anyone else can be of any help please do :)

Anyway...

Use netstat -i <interface> to show the network traffic across the interface while copying a file. Look to see if you are getting any collisions. Collisions can be caused conflicting duplex settings.

Have a look at the ifconfig <interface> command. You should get some output that indicates if you are at half or full duplex.

Most systems should autoneg to full duplex, however some hubs don't support autoneg and drop to the lowest common denominator. However you can usually force the computer to full duplex to fix this.

By the way, half-duplex is like useing a walkie-talkie - only one side can talk at a time, making it much slower than full-duplex where both sides can talk at the same time.
 

Carlo

All your base are belong
Originally posted by firewall
using smb I mounted a shared folder from my windows 2000 pro computer. I am getting extremly slow transfer.

I am using a linksys 4 ports hub/router 10/100

I have a dlink 10/100 on the pc and a gigabit on my g4

the file transfer speed is apx 170k/s ( 1.7mb per 10sec interval)

shouldn't i get close to 1.25mb/s with 10megabits card and 12.5mb with 100megabits cards?

the indicator on the router/hub shows connected at 100 megabits

any suggestion would be welcome
You should get about 5-7meg on 100meg ethernet average, on gigabit ethernet you get about 12-18 average.

IF you can try and see if its a hardware or software problem. What I do when something like this happens is FTP from one machine to another.

IE..

Setup the FTp service on your mac then FTP from the pc to the mac and download a big file. If you only get 170k then you should start checking leads and hubs (or drivers) if you get 3meg or more then you should check out the SMB configuration, reinstall windows networking or just throw away the pc and get a unix machine to replace it. :)
 

neutrino23

Registered
I've seen variations in login speed and transfer rates among different combinations of machines. We are still at the start of the learning curve with OS X. One G4 I have connecting to an NT box seems to go quickly enough. Haven't timed it.
 

Ripcord

Senior Lurker
Okay, here we go again...

Alright. Collisions will ALWAYS occur if the ethernet devices (the ethernet card and the hub/switch) are set to half-duplex. This is normal.

Half-duplex IS going to be slower than Full-duplex by nature, but if you're plugged into a switch, things shouldn't be very much slower than with Full-Duplex, unless you're trying to transfer files both directions at the same time. I'd expect to see about 10% performance loss when using half-duplex and plugged into a switch. You're seeing about 98% speed loss.

Hubs do NOT support full-duplex. Only switches do. Chances are that your Linksys is NOT a hub - it's a switch. This makes a big difference. What model # is it?

Here's the absolute biggest, most common cause of performance problems in Ethernet. Sorry it's so wordy, but it's good info:

If you've configured one side of an Ethernet link (the Ethernet card or hub/switch) to full-duplex, and left the other side at "auto-negotiate", your transfer speeds will be TERRIBLE. If, for example, you configured the Mac to "auto" (default in OS X), and configured the switch to "full", you'll see slow performance both directions, but will see ESPECIALLY slow performance when copying from the Mac to other devices.

The reason that hard-coding full duplex on one side and leaving auto-negotiation turned on the other side causes problems, is that when you specify full-duplex on an ethernet device, auto-negotiation is DISABLED on that device. People mistakenly think that the side of the link that is set to auto-neg will be able to detect that the other side is set to full-duplex. This is wrong. The auto-neg side of the link will still be able to figure out what speed the other side is running at (10mbps or 100mbps), but it has no way to know what duplex the other side is set to (since auto-neg is disabled on that side), and automatically selects <b>half-duplex</b>.

This creates a situation called "duplex-mismatch". The reason that "duplex mismatch" (when one side is set to full, the other side is set to half) causes problems is this: When an Ethernet device is set to "half-duplex", he sits and watches to see if the other side of the link starts sending data while he is sending his own data. If he detects that both sides of the link send at the same time, he'll consider a "collision" to have occurred. When this happens, he stops sending the data he was sending, queues it, and tries to send it again after a random, but very short period. He assumed that the other side of the link does the same thing.

Instead, the other side of the link (which is set full-duplex in our case), has no clue that a collision occurred, and continues to send his "chunk" (or "frame") of data. This chunk is ignored by the half-duplex device, and is effectively "lost". Also, since the half-duplex side stopped sending data in the middle of a "chunk", the full-duplex side will see this chunk as an error (usually a "CRC" or "framing" error). You can view number of input errors in OS X by running "netstat -i", or in Windows with "netstat -e".

This is really slow because when a chunk (frame) is lost in this way, the computer that was sending it has to rely on slow methods to realize that the data never got to the receiver, and that it needs to be retransmitted. This delay, in addition to the fact that the data has to be resent a second time (wasting bandwidth), brings CIFS (windows file sharing) to its knees - I've found that performance usually drops to about 50-300kBytes/s.

Also:

In theory, an Ethernet link can push 1.25MBytes/s, Fast ethernet can push 12.5MB/s, and gig - 125MB/s. However, depending on what protocol you're using (CIFS (Windows), AFP (Apple), NFS (Unix), FTP, etc), you can toss away 10-25% of that due to "overhead". Realistically I expect to see 10MB/s of data transfer with CIFS if everything's working right.

Make sure that for some reason <b>one</b> of the cards isn't coming up at 10Mb/s (note the "small b", which means "bits". Capital B means "bytes").

Watch out for CPU utilization, too. CIFS can take up a lot of CPU power, and that may be limiting some of your transfer speed. I don't know how well SAMBA in OS 10.1 does, performance-wise, though it's usually pretty efficient in other OSes. What are you using as file-sharing software on your Mac?

Unfortunately I don't know how to check what duplex you're running on Mac OS X, and I don't know how to change the settings.

Also, do you have another Win machine that doesn't run Win2k or WinXP that you can test with? There's a known problem that causes terrible performance problems between Win2k (and XP, since XP is basically 2000 with some removed/added features, and ugly color scheme) and WinNT that could be affecting the implementation of CIFS you're running on the Mac. (Basically it's due to the fact that raw SMB mode is no longer supported in Win2k). To get around this problem, you may want to try another implementation of CIFS (like SAMBAX like was suggested earlier), or:

Start Registry Editor on the PC (regedit.exe)
Find the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\
Add the Value:
Value Name: SizReqBuf
Data Type: DWORD Value
Radix: Decimal
Value: 65535

Or, like Steve said, the SMB implementation that comes with 10.1 may just suck, but I don't think that is your only problem.

Let's see... I guess that's it. Chances are that you're having one or more of the problems above.

Ian
 

jackshedd

a bastard.
I might be off-base here, but, as I understand it, I run Win2k Advanced Server on my PC, using Mac Services, and I notice no real speed hit from using OS 9. Transfers were about the same. Of course, this allows me to pump out ASIP, and not be relegated to using Samba.

Now, I can't speak for the Samba implementation under OS X, since I never use it. If you really need to push files, you have two choices.

1.) FTP - Just turn on FTP on both your OS X and your Win2k. Works like a dream.

2. ) Get the latest version of PC Mac Lan from Mirimar. They have a demo available, and it supports ASIP. It's a little pricey, but, hell, what's your time worth?
 

firewall

Registered
Thanks for all the reply

I gave up on samba and I am using ftp as suggested

I am getting 45Mbps !

transfering a 708 MB file took 2minutes and 15 sec !

Thanks again
 

Acranum

Registered
I want to know how to cause my mac to switch to Full-Duplex instead of Auto-negotiate...

I am having SLOWWWWWWW copy speeds between to macs with 100base t NIC's. I am using a Linksys Switch that is capable of 200mbps throughput. I use it because I am serving off of a Cable modem to both macs and I cannot do it any other way without purchasing another IP.... The downside is this Duplex mismatch issue which sucks....

So anyone else have any input on making the macs only Full Duplex instead of Auto....?

I have been doing extensive research on this issue and as I am a layman in regards to UNIX it is a hit & miss scenario for me...

Thanks in advance.
 

ladavacm

Unperson Spotter
would have helped if it were up to date; better manpage is on FreeBSD 3.2 and later.

There are 2 new keywords: media and mediaopt. Both are recognized by OS X ifconfig, but the en interface driver does not support media change (i.e. speed and phy).
mediaopt seems to be accepted, but ignored? This might be time for bug report.

The line to nail the interface to 100mbps full duplex would be

ifconfig en0 media 100baseTX mediaopt full-duplex

but the media part comes back with "operation not supported" (i.e. driver barfs), and mediaopt does not seem to do anything
(they can be used in two steps, to try this)
 

Acranum

Registered
Sorry to be so blunt but it sounds like the solution is unproven, and / or untested.... Does this work?

I thankyou for you quick reply and look forward to the final answer...

Thanks Again

Michael
 

ladavacm

Unperson Spotter
Originally posted by Acranum
Sorry to be so blunt but it sounds like the solution is unproven, and / or untested.... Does this work?

I thankyou for you quick reply and look forward to the final answer...

Thanks Again

Michael
Sorry for misleading you; it states that it is intended to work (i.e. that is the intended purpose of the keywords), but it does not work on OS X (lack of full driver support). Maybe that is the reason OS X keeps the ancient 4.2BSD manpage for ifconfig.

Oddly enough, alias seems to work (and it's definitely not 4.2BSD; more like 4.4BSD or later)
 

Acranum

Registered
Ok again I must remind you that I am a layman when it comes to UNIX... :>) so I now understand that OSX does not support the function(s) you have described due to unsupported drivers......

Your next comment says "alias" seems to work.... What is "alias"?
I am sorry to have to keep writing replies like a luddite but I do not understand much about UNIX :>(.

Thanks Michael

PS btw I am very grateful for the knowledge thus far...



Originally posted by ladavacm


Sorry for misleading you; it states that it is intended to work (i.e. that is the intended purpose of the keywords), but it does not work on OS X (lack of full driver support). Maybe that is the reason OS X keeps the ancient 4.2BSD manpage for ifconfig.

Oddly enough, alias seems to work (and it's definitely not 4.2BSD; more like 4.4BSD or later)
 

Acranum

Registered
All of this very technical data & explanantions are nice but it brings me no closer to solving my initial problem of, how to resolve Duplex mismatch issues under OS 10.1.4....

As I stated in previous posts I did read the information described below and understood that at that time a solution was not evident under OS X. Is this still the case? and If so can I somehow bring this to peoples attention so as to effect change and / or a solution. I am sure that I am not the only one having these issues as evidenced by the many posts on related subjects...

Thanks for the interest in my post and again I apologize if I am being blunt. The purpose of my post is to solve this problem and to learn more about UNIX. I really need a laymans explanation because UNIX is very foreign to me.

Thanks Michael

Originally posted by testuser
I'm a little late to this discussion, but I have some data that may be enlightening. We had a discussion about these duplex and speed issues nearly a year ago.

I performed some benchmarks using two Macs (G4 400 and iBook 466):
Code:
[b]Test                      Speed (Mbps)[/b]
network theoretical         100
ttcp (raw performance)       87.2
AFP-file transfer in Finder  65.3
    OS X to X (v10.1)
AFP-file transfer in Finder  47.4
    OS X to X (v10.0)
FTP-file transfer (v10.0)    33.7
AFP-file transfer in Finder  13.4
    OS X (v10.0) to OS 9
I was quite shocked to see how much of an overhead is exacted on file transfer rates. The details of my measurements are in the other post, but I basically measured file transfer with a >200MB file and a stopwatch. ttcp is a small unix program that blasts data by TCP between any two nodes on a network to provide network speed statistics.

My OS X to OS X Finder transfers proceeded at ~65% of the theoretical maximum of 100 Mbps.

Note: 100 Mbps (megabits per second) = 12.5 MBps (megabytes per second). (M = mega x10^3, m = micro x10^-3). firewall's original post was confusing because of the incorrectly labeled & missing units. It is good to see that you have cleared this up in subsequent posts!
 

Acranum

Registered
I am running OS 10.1.4 on a Special Edition G3 400 iMac and a B&W G3 400. They are connected to a LinkSys 5 port Switch which in turn is connected to a cable modem. I am serving the internet using the switch. My problem is that I am getting very slow copy speeds between the macs... I know that the switch is running full Duplex @ 200mbps as evidenced by the lights in front... if they are indeed accurate. I guess I need to measure performance by running some of the tools mentioned here to monitoring net traffic and so on. There is very little documentaion with the switch so I do not knwo how it is configured... Is there a way to look at it's configuration using some of the tools mentioned here? and if so how do you change the settings? I also have tried to use the Macs apple profiler to see what setting the macs are using but the profiler displayes jargon to descibe the net settings... Can you edit the ethernet controller on the macs somehow?

Thanks for the advice and I hope I can get more answers to all these questions too...


Thanks Again Michael
 
Top