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