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