Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!hsi!stevens
From: stevens@hsi.UUCP (Richard Stevens)
Newsgroups: comp.unix.wizards
Subject: rdump, Ethernet slowness
Message-ID: <788@hsi.UUCP>
Date: Sun, 6-Dec-87 17:43:28 EST
Article-I.D.: hsi.788
Posted: Sun Dec  6 17:43:28 1987
Date-Received: Fri, 11-Dec-87 07:07:30 EST
Organization: Health Systems Intl., New Haven, CT
Lines: 63
Keywords: rdump, /etc/rmt, ethernet

When we added a second VAX we had planned to use the existing 6250-bpi
tape drive for dumping its filesystems, using rdump(8).  Using rdump
once made it clear that this wasn't a viable solution.  (We're running
vanilla 4.3 BSD on a 785 and an 8600.)  We didn't delve into the
problem much, but punted and bought a cheap Unibus controller for the
newer VAX, and switch the existing 6250 drive between the two VAX'es
to do the level 0 dumps.

The comments in the paper by Karels & McKusick at the 1986 Atlanta Usenix
("Network Performance and Management with 4.3 BSD and IP/TCP") led me to
expect better results with rdump.

I then decided to get a better handle on just how slow dump and rdump are,
and here are the results, done on a single-user 8600 with a Kennedy
9400 tape drive (45 ips at 6250) with an Emulex TC13 Unibus controller.
The network hardware is an Interlan N1010A on both Vax'es.

	552,000 bytes/sec - speed of a C program that writes 1000 32768-byte
			    buffers to another process on the same system.
			    The two processes are connected with a stream
			    socket created by rexec(3), with the SO_SNDBUF
			    socket option set to 32768.

	540,000 bytes/sec - raw disk speed for an RA81, using dd and bs=32768.
			    Driver's UDABURST is set to 4.  I'm not sure
			    what the UDA50's Unibus delay jumper is set to.

	266,000 bytes/sec - "theoretical" max speed of a 45 ips, 6250 tape
			    drive, writing 1000 32768-byte blocks, with
			    0.3-inch inter-record gaps.

	247,000 bytes/sec - actual speed of a simple C program that does
			    1000 write(2) calls of a 32768-byte block,
			    to the raw tape drive.  About 7% less than the
			    theoretical max above, which isn't bad.	

	172,000 bytes/sec - dump speed of the RA81 to /dev/null.

	166,000 bytes/sec - dump speed of the RA81 to the tape drive.
			    About 3% slower than to /dev/null, which isn't bad.
			    About 32% slower than the tape drive speed.

	 52,000 bytes/sec - speed of a C program writing 1000 32768-byte
			    buffers to another process on the other system,
			    across the Ethernet, using a stream socket, as
			    in the 552,000 bytes/sec example given above.

	 41,000 bytes/sec - rdump speed to /dev/null on the other system.
			    4 times slower than dump.  Not very good.

For the actual tests of dump and rdump, I timed the second tape that dump
wrote, to avoid the first 3 passes that dump makes before it starts
dumping the regular files.  Also, for the rdump test, the other system
(for the /dev/null output) was essentially idle, with the priority of
the /etc/rmt process set to -20.

Should the actual throughput of the Ethernet be as slow as we're seeing ??
Should I expect rdump to be so slow, given the Ethernet throughput ??
(Maybe rdump wouldn't be so bad if you were used to a TS11 :-) ).

	Richard Stevens
	Health Systems International, New Haven, CT
           { uunet | ihnp4 } ! hsi ! stevens