Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Apr 1996 13:13:59 -0800 (PST)
From:      "JULIAN Elischer" <julian@ref.tfs.com>
To:        tjeffers@nastg.gsfc.nasa.gov
Cc:        hackers@freebsd.org
Subject:   Re: Freebsd Vs. Linux
Message-ID:  <199604032113.NAA09818@ref.tfs.com>
In-Reply-To: <3162C4ED.794BDF32@rah.star-gate.com> from "Amancio Hasty, Jr." at Apr 3, 96 10:35:25 am

next in thread | previous in thread | raw e-mail | index | archive | help
This was forwarded tous at teh FreeBSD mailing lists..

> 
> Karen Jefferson x2857 wrote:
> > 
> > We are in the midst of a development project which uses alot of UDP
> > and serial communications.
> > 
> > Although our preference had been to use FreeBSD, the UDP
> > performance was terrible (200 Kbps over Ethernet), and we
> > kept getting ENOBUF errors  which  makes FreeBSD an unacceptable choice.
This is amazing 
we routinely flood an ethernet with UDP using a 486Dx2-66
there MUST be something terribly wrong with your configuration.
FreeBSD networking usually gives more than twice the throughput
of The Linux networking..
See the USENIX papers from January 96. where there were two papers comparing
exactly this. 

note that under FreeBSD, an ENOBUFS is a real indication that you 
should retry your send after delaying..
under LINUX the packet is silently discarded and never sent..
(though you THINK it has been sent).


> > Our previous posts for possible parameters to tune didn't
> > turn up anything helpful, and messages to freebsd.org haven't been
> > answered yet.
I haven't seen any messages.. What is your configuration
and hardware?

> > 
> > The TCP performance was the same for both Linux and FreeBSD, and UDP
> > testing on all other platforms in our facility proved okay for Solaris,
> > SunOS, & SCO.
This in itself says that somehting is very wrong..
FreeBSD TCP is usually MUCH faster than
other OS's on the same hardware..

how are you testing this?

> > 
> > Is there anything we can do to improve the UDP performance of FreeBSD?
> > Why does it care about buffering for UDP?  Please respond via email
> > to tjeffers@nastg.gsfc.nasa.gov.  Thanks.
UDP is telling you that all the packets you have asked to send have not
been sent yet, but are queued, and that it has a full queue. You should allow a
moment for the queue to drain a little and then retry the last send....

Linux and other OS's often just discard the packet that didn't fit in
the queue. (UDP is 'unreliable' so it is OK to do this, but 
it is BETTER to not lose the packet....

If you are not getting anything but the best netwroking figures for FreeBSD
then you have a hidden problem...

some figures: (from the USENIX papers)

FreeBSD 2.0.5 (2.1  and 2.2 are improved over these figures)
UDP throughput on a 100MHz Pentium  (loopback)

packetsize		FreeBSD		Linux
small                 <figures look similar on graph>
500bytes                 10Mb/sec	8Mb/sec
1K			 20Mb/sec      15Mb/sec
2K                       28Mb/sec      15Mb/sec (yes, no change)
4K                       37Mb/sec      16Mb/sec
6K                       42Mb/sec      17Mb/sec
8K                       47Mb/sec      17Mb/sec


TCP figures: (loopback)
FreeBSD 2.0.5      65Mb/sec
Linux 1.2.8        25Mb/sec


from larry McVoy's paper:
FreeBSD pentium 133  100Mb enet..  TCP bandwidth..7.9 MBytes/sec
Linux pentium90 on a 10Mb enet got 700KB/sec
FreeBSD on 10Mb saturated teh net at 1.15MB/sec..

not a fair test, but indicative..

if you can only get 200K/sec
you must be using:
1/ very small packets
2/ have a bad problem somewhere..


julian
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604032113.NAA09818>