My suggestion for pounding Oracle I/O is to use SLOB - Silly Little Oracle Benchmark. For an example of dNFS testing with SLOB see http://dboptimizer.com/2012/07/16/nfs-versus-dnfs/ SLOB will bang on random reads and redo writes. It's not setup for sequential reads. For the fio scripts, I/O for sequential writes is set at certain sizes - 1K, 8K, 128K. A set of tests is run with each block size. Each set of tests runs up 1, 4, 16 uses as if there were 1, 4,16 databases. The write job file use SYNC and DIRECT (except on ZFS where direct isn't supported) Example job file ( the job files are generated by a script called fio.sh which iterates though different combinations) [global] size=8192m filename=/dev/rdsk/c4t3d0p0:/dev/rdsk/c4t4d0p0 directory=/ direct=1 runtime=5 randrepeat=0 end_fsync=1 group_reporting=1 ioengine=psync fadvise_hint=0 time_based=1 [job1] rw=write bs=0008k numjobs=1 offset=0 sync=1 >>How can I split the block size for I/O? I haven't tried this. Looks like you are doing this already. I change block sizes by running different tests at different sizes. >>How can I create different size of files? Why would you want too do that? Why not just test all the same file size? On Wed, Sep 5, 2012 at 3:42 PM, Neto, Antonio Jose Rodrigues <Antonio.Jose.Rodrigues.Neto@xxxxxxxxxx> wrote: > > Hi Kyle > > > > This is neto from Brazil > > > > How are you? > > > > Thanks for your email. > > > > Yes I am trying to reproduce Oracle I/O patterns because I need to tests different storage controllers here and I don’t like to use ORION for that. (Orion doesn’t support DIRECT_IO for NFS or mounted filesystem) > > > > Anyway… > > > > How can I split the block size for I/O? > > How can I create different size of files? > > > > How are you doing this? > > > > 1-128K sequential write (redo writes) > > > > > > > > I will take a look on your scripts > > > > All the best > > > > neto > > > > From: Kyle Hailey [mailto:kyle.hailey@xxxxxxxxxxx] > Sent: Wednesday, September 05, 2012 3:48 PM > > > To: Neto, Antonio Jose Rodrigues > Cc: fio@xxxxxxxxxxxxxxx > > Subject: Re: Using fio to mimicking Oracle workload pattern > > > > > > Why are you trying to reproduce the I/O patterns of Oracle? Is it to test the performance of the back end storage for Oracle? If so what criteria are you using to judge the performance. > > > > I've been using fio to test the back end storage for Oracle. I've been interested in the limits of the 3 main axis of Oracle I/O (and less in the mix of the three) > > 8k random read (index access etc) > 1M sequential read (full table scans etc) > 1-128K sequential write (redo writes) > > The other types of I/O are > > 8k random write which is done by DBWR but users don't typically wait for these I/Os > ldirect path write by users but this isn't a typical operation more ET > > I put together tests to test the main 3 types of I/Os each isolated (ie not mixed at the same time). The tests are on github at: > > https://github.com/khailey/fio_scripts > > > > See the README.md for more info. > > > > The tests are run by a shell script that runs fio in an array of tests. There is a script to parse the data and summarize it as well as an R script to graph the data. > > > > I have new set of R scripts to post soon. > > > > - Kyle > > > > > > On Sun, Sep 2, 2012 at 7:50 AM, Neto, Antonio Jose Rodrigues <Antonio.Jose.Rodrigues.Neto@xxxxxxxxxx> wrote: > > Hi All, > > > This is neto from Brazil > > > How are you? > > > I want to simulate some Oracle workload pattern using fio. I would like to do the following: > > > Archive LOGS: I would like to create x number of different file sizes. I have tried the following, but I am not sure if this is right about filesize option. > > directory=/archive > size=10g > ioengine=libaio > nrfiles=5 > iodepth=4 > rw=write > filesize=500m > direct=1 > threads=4 > numjobs=1 > > Redo LOGS: I have tried the following: sync I/O and block split (to simulate partial writes) - 60% 512 bytes and 40% 4096. > > directory=/redo > size=1g > ioengine=libaio > nrfiles=5 > iodepth=4 > sync=1 > rw=write > filesize=500m > bssplit=512/60:4k/40 > direct=1 > numjobs=1 > > FULL Table Scan: I have tried creating 3 files and read from them (randomly). I used ba=4096 to have block aligned and 1MB of block size (to simulate db_scattered_read). > > [tablescan] > directory=/u109/oradata/fio > nrfiles=3 > openfiles=3 > file_service_type=roundrobin > size=1g > iodepth=32 > ba=4k > bs=1M > rw=randread > numjobs=2 > > > Could you please help to check if the above files are correct? If they are, how can I double check if everything is working as expected (on fio output)? > > Thank you very much > > neto-- > To unsubscribe from this list: send the line "unsubscribe fio" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > -- > > - Kyle > > > O: +1.415.341.3430 > F: +1.650.494.1676 > 275 Middlefield Road, Suite 50 > Menlo Park, CA 94025 > http://www.delphix.com -- - Kyle O: +1.415.341.3430 F: +1.650.494.1676 275 Middlefield Road, Suite 50 Menlo Park, CA 94025 http://www.delphix.com -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html