From: Chris Maeda (cmaeda@cs.washington.edu)
Date: 10/08/93


From: cmaeda@cs.washington.edu (Chris Maeda)
Subject: NetBSD TCP/IP network benchmarks
Date: Fri, 8 Oct 1993 08:55:54 GMT


In article <2CB12A8D.17397@news.service.uci.edu>
jstern@aris.ss.uci.edu (Jeff Stern) writes:
>
> if someone has done a more careful port and measurement than i, and
> also if disk speed or tcp/ip access can be measured, either.
>

I've done some network throughput and latency benchmarks of NetBSD 0.8.
I don't have a box running linux, so I don't know how fast it is.

Measurements were done using 2 33 mhz 486dx boxes with 16 MB RAM and
3c503 ethernet cards. The machines were run in single user mode on a
private ethernet. The systems measured are NetBSD 0.8, Mach 2.5, a
vanilla Mach 3.0 system using the TCP/IP code in the UX unix server, a
vanilla Mach 3.0 system using the BSDSS unix server, and a Mach 3.0
system using the library-based TCP/IP implementation.*

TCP throughput was measured using ttcp (anon ftp from sgi.com in
sgi/src/ttcp) which is a 16MB one-way memory-to-memory transfer.

system codebase kbytes/s

NetBSD 0.8 BNR2 320
Mach 2.5 4.3BSD 457
Mach 3.0(UX server) 4.3BSD 415
Mach 3.0(BSDSS server) BNR2 382
Mach 3.0(library) BNR2 469

UDP latency was measured using a ping-pong test: a client bounced
packets off a server 10000 times and divided the total elapsed time by
10000. This set of benchmarks is available through anon ftp from
mach.cs.cmu.edu in src/net-latency-tools.tar.Z.

UDP round trip latency (in milliseconds)

system message size (bytes)
                        1 100 512 1024 1472
=============================================================
NetBSD 0.8 2.63 3.49 6.04 9.54 12.50
Mach 2.5 1.83 2.44 5.19 8.51 11.41
Mach 3.0(UX) 3.96 4.67 7.86 11.65 15.00
Mach 3.0(BSDSS) 4.64 5.37 8.95 13.23 16.84
Mach 3.0(library) 2.12 2.68 5.41 8.74 11.66

So NetBSD's networking performance is pretty dismal compared to Mach.
I don't know why but I imagine it has something to do with device
drivers and low level code that does context switching and stuff
because the actual network protocol code is very similar in all cases.
To be fair, no one has ever tried to tune up NetBSD.

[More details on these benchmarks and the library-based TCP/IP
implementation are in doc/published/user.level.protocols.ps on
mach.cs.cmu.edu.]

Cheers,
Chris