Efficient tape I/O with 386/ix; How??

vrs at lint.i.intel.com vrs at lint.i.intel.com
Tue Dec 13 09:11:26 AEST 1988


#In article <317 at focsys.UUCP> larry at focsys.UUCP (Larry Williamson) writes:
# >Streaming tape I/O with 386/ix seems to be rather slow.  The drive
# >is not streaming very well.  It spends most of it's time stopping
# >and starting.  I'm using an Everex Excel 60 with a long controller
# >card. 
# >
# >The command I've used is
# >	find . -print | cpio -ovc >/dev/rmt0
# >
There are two problems here: 1) The data transfers are done on small
buffers (5K bytes, I believe), and 2) cpio blocks in the write when it
should be reading the disk to create more output.

In article <251 at dcs.UUCP> wnp at dcs.UUCP (Wolf N. Paul) writes:
#It seems to me that you should be able to achieve the effect of the
#"strm" utility on Uport 286 (and other similar utilities, i.e. "stream"
#as supplied with the Bell Tech driver, etc.) by using "dd" with a large
#block size. You may need to experiment to find out how large a block
#size your system will allow, but try something like this:
#
#  find . -print | cpio -ocv | dd of=/dev/rmt0 bs=64k
This decouples the reading done by CPIO from the writing done by DD, and
sometimes CPIO will be able to compute output fast enough to keep the tape
streaming.  This does not work well on my machine, though.  Here's the
command that I use:

	find . -print | cpio -oBcv | dd of=/dev/rmt0 ibs=5k obs=500k

With this command, DD will always wait until 500K have accumulated before
writing the tape (except at EOF, of course).  Then the tape is guaranteed
to stream at least that 500K.  Since my tape is still generally faster than
my disk, this command tends to read the disk more or less continuously,
writing the tape in long bursts, each of which keeps the tape streaming
for a minute or so.

The net result begins to feel like:

	find . -print | cpio -oBcv >/dev/null

except that a backup tape actually exists at the end.



More information about the Comp.unix.microport mailing list