Home | History | Annotate | Download | only in doio
      1 
      2 $Id: README,v 1.1 2001/08/27 22:15:12 plars Exp $
      3 
      4 This file contains some very basic information on:
      5    iogen/doio and rwtest
      6    growfiles
      7 
      8 All tools use the -h flag for printing some form of help (sometimes voluminous).
      9 They are extremely configurable; the examples below are some common uses.
     10 Read the help and experiment!   This testing tools were originally written
     11 to test UNICOS's NC1 and IRIX XFS filesystems.
     12 
     13 
     14 IOGEN & DOIO
     15 =============
     16 
     17 This is a pair of programs that does basic I/O operations on a set of files.
     18 The file offset, I/O length, I/O operation, and what open(2) flags are
     19 selected randomly from a pre-defined or commandline given set. All data
     20 written can be verified (this is the usual method).
     21 
     22 rwtest is a shell script that is a wrapper of iogen and doio.
     23 
     24 Examples:
     25 ---------
     26 # run forever:  8 process - using record locks
     27 iogen -i 0 100000b:doio_1 | doio -av -n 8 -m 1000
     28 
     29 # run forever:  8 process - using record locks
     30 iogen -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
     33 rwtest -c -i 0 -T 64b 500b:/tmp/rwtest01%f
     34 
     35 
     36 
     37 GROWFILES
     38 =============
     39 
     40 Growfiles will create and truncate files in gradual steps using write, and
     41 lseek. All system calls are checked for proper returns. The writes or the
     42 whole file content can be verified.  It can cause disk fragmentation.
     43 
     44 
     45 Examples:
     46 ---------
     47 growfiles -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.
     50 growfiles -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
     53 growfiles -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
     56 growfiles -i 0 -g 0 -c 0 -C 0 ocfile
     57 
     58 # writes 4096 to files until 50 blocks are written
     59 growfiles -i 0 -g 4096 -B 50b file1 file2
     60 
     61 # write one byte to 750 files in gdir then unlinks them
     62 growfiles -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.
     66 growfiles -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
     69 growfiles -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.
     73 growfiles -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.
     77 growfiles -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