[EXAMPLES]
\fBspew --write -b 16k 1m /tmp/bigfile\fR
.PP
or
.PP
\fBspew -b 16k 1m /tmp/bigfile\fR
.PP
Writes 1 mebibyte (1 mebibyte = 1024*1024 bytes) using 16 kibibytes (1
kibibyte = 1024 bytes) requests to the file \fI/tmp/bigfile\fR using
the default pattern (random).
.
Displays the write transfer rate in kibibytes per second and the write
transfer time in seconds.
.
.PP
\fBspew --write -u m -i 10 -b 1k 256k /dev/sda1\fR
.PP
or
.PP
\fBspew -u m -i 10 -b 1k 256k /dev/sda1\fR
.PP
Writes 256 kibibytes using 1 kibibyte requests to the block device file
\fI/dev/sda1\fR 10 times using the default pattern (random).
.
The iteration and cumulative write transfer rates are displayed in
mebibytes per second and the iteration and cumulative write transfer times are
displayed in seconds.
.PP
\fBspew --raw -d -o 1m -b 16m 1g /tmp/bigfile\fR
.PP
or
.PP
\fBregorge -s -o 1m -b 16m 1g /tmp/bigfile\fR
.PP
Write 1 gibibyte (1 gibibyte = 1024*1024*1024 bytes) starting at an
offset of 1 mebibyte using 16 mebibyte requests to the file
\fI/tmp/bigfile\fR using the default pattern (random).
. 
The data is written synchronously and flushed at file close.
.
Then read in the same data using the same request size and offset.
.
The data is checked to ensure that the data read in matches the data
read out.
.
Write and read tranfer rates are displayed in kibibytes/second.  Read
are write transfer times are displayed in seconds.
.PP
\fBspew --read -i 0 -u M -p zeros -b 512 1m /dev/zero\fR
.PP
or
.PP
\fBgorge -i 0 -u M -p zeros -b 512 1m /dev/zero\fR
.PP
Read 1 mebibyte of data using 512 byte requests from the file
\fI/dev/zero\fR an infinite number of times using the zeros pattern
(don't check the data).
.
The iteration and cumulative read transfer rates are displayed in
megabytes (1 megabyte = 1,000,000 bytes) per second and the iteration
and cumulative read transfer times are displayed in seconds.
.PP
\fBspew --raw -g -r -b 1k -B 256K 1t /dev/md1\fR
.PP
or
.PP
\fBregorge -g -r -b 1k -B 256K 1t /dev/md1\fR
.PP
Write 1 tebibyte (1 tebibyte = 1024*1024*1024*1024 bytes) using 1-256
kibibyte requests to the block device \fI/dev/md1\fR using the random
pattern.  Random seeks are performed before each transfer, but each
block between the start and end of the data is written exactly once.
.
The request sizes are chosen randomly.
. 
Then read in the same data using the same request sizes and seeks in
the same sequence.
.
Repeat the above sequence an infinite number of times until told to
quit (via signal or TUI command).
.PP
The data is checked to ensure that the data read in matches the data
read out.
.
A curses-based TUI is used to display iteration and cumulative transfer
rates, transfer times, and bytes transferred.
.
Display verbose statistics after quitting.
.
[ALGORITHMS]
.
The following algorithm is used to determine blocksize when
MAX_BUFFER_SIZE > MIN_BUFFER_SIZE:
.PP
Find the largest blocksize that is a power of 2 and is >=
MAX_BUFFER_SIZE.
.
Call this maxbuffersize. Find the smallest buffersize that is a power
of 2 and is >= MIN_BUFFER_SIZE. Call this minbuffersize.
.
Chunksize = maxbuffersize * (difference in number of bits between min
and maxbuffersize + 1).
.
The number of chunks is TRANSFER_SIZE/chunksize. Call this numchunks.
.
There will be numchunks number of read/writes that are of size
maxbuffersize, 2 * numchunks number of read/writes that are of size
maxbuffersize/2, 4 * numchunks number of read/writes that are of size
maxbuffersize/4, and so on until minbuffersize is reached.
.
MIN_BUFFER_SIZE is used for any remaining transfers if TRANSFER_SIZE
is not evenly divisible by chunksize.
.PP
Example: Using a MIN_BLOCK_SIZE of 1k, a MAX_BLOCK_SIZE of 8k and a
TRANSFER_SIZE of 264k results in 8 8k read/writes, 16 4k read/write,
32 2k read/writes, and 64 + 8 1k read/writes.

[PATTERNS]
.
Use the following od(1) command to examine spew generated files where a data
integrity problem has occurred:
.PP
od -A d --format=d8 --width=32  <file>
.PP

[FILES]
.TP
\fl$HOME/.spewrc\fR or \fl$SPEWRC\fR
Holds user default options. These options precede any options included
on the command-line.
.TP
\flSYSCONFDIR/spew.conf\fR
Holds system-wide default options.  These options precede any options
included on the command-line  and options included from \fl$HOME/.spewrc\fR or \fl$SPEWRC\fR.


