1
2$Id: README,v 1.1 2001/08/27 22:15:12 plars Exp $
3
4This file contains some very basic information on:
5   iogen/doio and rwtest
6   growfiles
7
8All tools use the -h flag for printing some form of help (sometimes voluminous).
9They are extremely configurable; the examples below are some common uses.
10Read the help and experiment!   This testing tools were originally written
11to test UNICOS's NC1 and IRIX XFS filesystems.
12
13
14IOGEN & DOIO
15=============
16
17This is a pair of programs that does basic I/O operations on a set of files.
18The file offset, I/O length, I/O operation, and what open(2) flags are
19selected randomly from a pre-defined or commandline given set. All data
20written can be verified (this is the usual method).
21
22rwtest is a shell script that is a wrapper of iogen and doio.
23
24Examples:
25---------
26# run forever:  8 process - using record locks
27iogen -i 0 100000b:doio_1 | doio -av -n 8 -m 1000
28
29# run forever:  8 process - using record locks
30iogen -i 0 100000b:doio_2 | doio -akv -n 8 -m 1000
31
32# run forever: max i/o 64b, to /tmp/rwtest01%f, which 500b in size
33rwtest -c -i 0 -T 64b 500b:/tmp/rwtest01%f
34
35
36
37GROWFILES
38=============
39
40Growfiles will create and truncate files in gradual steps using write, and
41lseek. All system calls are checked for proper returns. The writes or the
42whole file content can be verified.  It can cause disk fragmentation.
43
44
45Examples:
46---------
47growfiles -E output:
48# run forever: writes of 4090 bytes then on every 100 iterval
49# truncate file by 408990 bytes.  Done to 200 files in dir1.
50growfiles -i 0 -g 4090 -T 100 -t 408990 -l -C 10 -c 1000 -d dir1 -S 200
51
52# same as above with writes of 5000 bytes and truncs of 499990
53growfiles -i 0 -g 5000 -T 100 -t 499990 -l -C 10 -c 1000 -d dir2 -S 200
54
55# runs forever: beats on opens and closes of file ocfile - no io
56growfiles -i 0 -g 0 -c 0 -C 0 ocfile
57
58# writes 4096 to files until 50 blocks are written
59growfiles -i 0 -g 4096 -B 50b file1 file2
60
61# write one byte to 750 files in gdir then unlinks them
62growfiles -g 1 -C 0 -d gdir -u -S 750
63
64# run 30 secs: random iosize, random lseek up to eof
65# Only valid for one growfile process per file.
66growfiles -r 1-5000 -R 0--1 -i 0 -L 30 -C 1 g_rand1 g_rand2
67
68# run 30 secs: grow by lseek then write single byte, trunc every 10 itervals
69growfiles -g 5000 -wlu -i 0 -L 30 -C 1 -T 10  g_sleek1 g_lseek2
70
71# run forever: 5 copies of random iosize, random lseek to beyond eof,
72# rand io types doing a trunc every 5 iterations, with unlinks.
73growfiles -i0 -r 1-50000 -R 0--2 -I r -C1 -l -n5 -u -U 100-200 gf_rana gf_ranb
74
75# run forever: 5 copies of random iosize, random lseek to beyond eof,
76# random open flags, rand io types doing a trunc every 10 iterations.
77growfiles -i0 -r 1-50000 -R 0--2 -o random -I r -C0 -l -T 20 -uU100-200 -n 5 gf_rand1 gf_rand2
78
79
80