Subject: Re: 3c905b Ethernet Cards
To: Matthias Scheler <tron@zhadum.de>
From: Greg A. Woods <woods@most.weird.com>
List: tech-net
Date: 02/17/1999 13:15:15
[ On Wednesday, February 17, 1999 at 13:30:07 (+0100), Matthias Scheler wrote: ]
> Subject: Re: 3c905b Ethernet Cards
>
> This test method is bad. If you test the fxp driver with "ttcp" in UDP mode
> it gets good results, too. But if you use TCP mode or try to copy files via
> NFS/UDP you will not even get full 10MB/Sec ethernet speed.

It is bad because it only goes in one direction at a time.

> It looks like the fxp driver causes lots of data corruption errors which
> are neither detected by "ping -f" nor by a simple UDP benchmark. But
> TCP and NFS/UDP will suffer due to the necessary retransmissions.

That sounds like a physical connection problem....

In one of your other followups you mentioned just how slow your
transfers really were, and now that I know it was several orders of
magnitude slower I can assure you that it is likely a wiring or
rate/duplex negotiation problem.  I had exactly the same problem some
time ago with a really cheap ethernet switch (though in that case the
fxp's would negotiate properly but SMC cards wouldn't).

In this case I'm not doing anything special with "ifconfig media" and
I think I'm plugged directly into a Cabletron SmartSwitch Router.

> > ... particularly if you put some decent hardware behind it,
> 
> Is a Pentium II 400 sitting on a BX board with 256MB memory "decent" enough?

Actually what I'd really meant was using a decent ethernet card, though
certainly having the CPU and bus bandwidth to drive it are necessary
factors too.

> I suggest you try running "ttcp -r -s" on one and "ttcp -t -s first-machine"
> on the other machine and post the results. I would really like to see
> your numbers.

Here are results from both directions, the 192.168.1.0 network is what
the "fxp" cards are connected to, and the NNN.NNN.NNN.0 network is what
the "le" on-board interfaces are connected to.  Still looks like the
"fxp" is slightly faster....

12:46 [machine.250] # ttcp -T -n 10000 -v -t -s 192.168.1.251
ttcp-t: buflen=8192, nbuf=10000, align=16384/0, port=5001  tcp  -> 192.168.1.251
ttcp-t: socket
ttcp-t: connect
ttcp-t: 81920000 bytes in 7.19 real seconds = 11133.48 KB/sec +++
ttcp-t: 81920000 bytes in 5.42 CPU seconds = 14752.29 KB/cpu sec
ttcp-t: 10000 I/O calls, msec/call = 0.74, calls/sec = 1391.69
ttcp-t: 0.0user 5.4sys 0:07real 75% 0i+0d 0maxrss 0+0pf 15816+55csw
ttcp-t: buffer address 0x8000

12:47 [machine.250] # ttcp -T -n 10000 -v -t -s NNN.NNN.NNN.251
ttcp-t: buflen=8192, nbuf=10000, align=16384/0, port=5001  tcp  -> NNN.NNN.NNN.251
ttcp-t: socket
ttcp-t: connect
ttcp-t: 81920000 bytes in 7.36 real seconds = 10870.44 KB/sec +++
ttcp-t: 81920000 bytes in 6.81 CPU seconds = 11750.87 KB/cpu sec
ttcp-t: 10000 I/O calls, msec/call = 0.75, calls/sec = 1358.80
ttcp-t: 0.0user 6.7sys 0:07real 92% 0i+0d 0maxrss 0+0pf 1248+84csw
ttcp-t: buffer address 0xc000

12:49 [machine.250] # ttcp -v -r -s
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 192.168.1.251
ttcp-r: 81920000 bytes in 7.17 real seconds = 11150.27 KB/sec +++
ttcp-r: 81920000 bytes in 2.28 CPU seconds = 35082.13 KB/cpu sec
ttcp-r: 56472 I/O calls, msec/call = 0.13, calls/sec = 7870.97
ttcp-r: 0.0user 2.2sys 0:07real 31% 0i+0d 0maxrss 0+0pf 54830+27csw
ttcp-r: buffer address 0x8000

12:54 [machine.250] # ttcp -v -r -s 
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from NNN.NNN.NNN.251
ttcp-r: 81920000 bytes in 7.40 real seconds = 10806.48 KB/sec +++
ttcp-r: 81920000 bytes in 3.23 CPU seconds = 24789.89 KB/cpu sec
ttcp-r: 47504 I/O calls, msec/call = 0.16, calls/sec = 6416.89
ttcp-r: 0.1user 3.0sys 0:07real 43% 0i+0d 0maxrss 0+0pf 34635+42csw
ttcp-r: buffer address 0x8000



12:46 [machine.251] # ttcp -v -r -s  
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 192.168.1.250
ttcp-r: 81920000 bytes in 7.19 real seconds = 11130.60 KB/sec +++
ttcp-r: 81920000 bytes in 2.50 CPU seconds = 32033.58 KB/cpu sec
ttcp-r: 56445 I/O calls, msec/call = 0.13, calls/sec = 7853.33
ttcp-r: 0.0user 2.4sys 0:07real 34% 0i+0d 0maxrss 0+0pf 48734+24csw
ttcp-r: buffer address 0x8000

12:47 [machine.251] # ttcp -v -r -s  
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from NNN.NNN.NNN.250
ttcp-r: 81920000 bytes in 7.36 real seconds = 10868.40 KB/sec +++
ttcp-r: 81920000 bytes in 3.03 CPU seconds = 26371.68 KB/cpu sec
ttcp-r: 54830 I/O calls, msec/call = 0.14, calls/sec = 7448.93
ttcp-r: 0.1user 2.9sys 0:07real 41% 0i+0d 0maxrss 0+0pf 38673+30csw
ttcp-r: buffer address 0x8000

12:49 [machine.251] # ttcp -T -n 10000 -v -t -s 192.168.1.250
ttcp-t: buflen=8192, nbuf=10000, align=16384/0, port=5001  tcp  -> 192.168.1.250
ttcp-t: socket
ttcp-t: connect
ttcp-t: 81920000 bytes in 7.17 real seconds = 11152.84 KB/sec +++
ttcp-t: 81920000 bytes in 5.38 CPU seconds = 14862.57 KB/cpu sec
ttcp-t: 10000 I/O calls, msec/call = 0.73, calls/sec = 1394.10
ttcp-t: 0.0user 5.3sys 0:07real 74% 0i+0d 0maxrss 0+0pf 15065+36csw
ttcp-t: buffer address 0x8000

12:53 [machine.251] # ttcp -T -n 10000 -v -t -s NNN.NNN.NNN.250
ttcp-t: buflen=8192, nbuf=10000, align=16384/0, port=5001  tcp  -> NNN.NNN.NNN.250
ttcp-t: socket
ttcp-t: connect
ttcp-t: 81920000 bytes in 7.40 real seconds = 10808.74 KB/sec +++
ttcp-t: 81920000 bytes in 6.82 CPU seconds = 11736.02 KB/cpu sec
ttcp-t: 10000 I/O calls, msec/call = 0.76, calls/sec = 1351.09
ttcp-t: 0.0user 6.7sys 0:07real 91% 0i+0d 0maxrss 0+0pf 1280+82csw
ttcp-t: buffer address 0x8000


-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>      <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>