3C905B-TX (nfs/netperf problem)

Robert G. Brown rgb@phy.duke.edu
Thu Jul 23 10:49:48 1998

On Wed, 22 Jul 1998, Rob Riggs wrote:

> > I have encountered a problem of network performance of Linux using
> > 3C905B-TX card. Could someone help me ?
> I hope so...
> > (1) In configuring the PC(Linux) as NFS client, the NFS read (read 
> > file from NFS mounted disk to local disk) performance is reasonable, 
> > while the NFS write (Write file from local disk to NFS mounted disk) 
> > performance seems to be very slow. (about 200 KB/s on 100Mbps 
> > connection) In the same pc, if I boot the Solaris 2.6, the NFS 
> > performance for read and write seems to be reasonable.
> Try mounting the nfs partition with '-o rsize=8192,wsize=8192'
> and see if that helps. Let me know if this fixes the NFS
> problem.

It doesn't ever "fix" the problem, but it does ameliorate it from the
ridiculous.  A bit.  We've been living with this problem forever.  I
just don't do big writes into my (NFS mounted from Solaris) home
directory -- if I do a network download, it is strictly into (local)
/tmp.  If I need to, I can do a leisurely background cp into my home
directory afterwards.

Seriously, WITH the tuning described above I get about 160 KB/sec
(over yes, a switched 100BT line).  This is livable for files a few
hundred K in size, but really sucks for ~10 MB size files and is
absolutely impossible for ~100 MB size files.  linux-to-linux NFS
writes aren't much better -- around 250 KB/sec.

I truly wish that one day NFS were fixed in linux.  On the other hand,
it mostly works and I don't have the time to fix it, so I'll just

> > (2) The "netperf" of the PC booting Linux to Alpha Workstation connected 
> > by 100BaseTX via CISCO 2916 is only 0.15 Mbps, while if I boot Solaris 2.6
> > of the pc, the netperf from the same pc to the same alpha shows 94.03 Mbps.
> > 
> > Linux (2.1.109 (3c59x.c v0.99E))
> > TCP STREAM TEST to rikalp.phy.bnl.gov
> > Recv Send Send
> > Socket Socket Message Elapsed
> > Size Size Size Time Throughput
> > bytes bytes bytes secs. 10^6bits/sec
> > 32768 65535 65535 12.66 0.15 <--- 0.15 Mbps
> Do me a favor and 'cat /proc/net/dev' both before and after
> a netperf run. I need to know how many errors we are seeing.
> .15Mbps is extremely slow for a 100BaseT connection.

I've seen this kind of throughput before, but generally only when one
is radically overrunning the capacity of the receiver.  If you do a
netperf from a REALLY fast system (one capable of sending say 45-60
Kpps) to a slowish system, I think you induce a thrashing behavior and
experience a strong nonlinear cutoff in throughput.  I discovered this
when trying to crash my systems back in the days of the set_bit() bug
with full speed netperf's from two or three PII's to a PPro or PII.
One stream gives good performance, two or more creates significant
problems.  But at least it no longer crashes!


Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb@phy.duke.edu