* IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R)
@ 2016-03-22 19:17 Thierry BERTAUD
[not found] ` <CANvN+enipwNVDS4QSsgh67FkpL-EoBsW0j0XRj5F2qSc7w+83A@mail.gmail.com>
0 siblings, 1 reply; 7+ messages in thread
From: Thierry BERTAUD @ 2016-03-22 19:17 UTC (permalink / raw)
To: fio@vger.kernel.org
Hello fio team,
Does it possible with fio to simulate a job with IO mixed for simulating a typical workload of an Oracle database.
1. 12% seqread
2. 8% seqwrite
3. The rest 80% are random of this 30% (24% from total) is write and 70% (56% from total) reads.
I know our to test every step alone but i want to test step 1,2 and 3 in the same time.
Regards,
Thierry
^ permalink raw reply [flat|nested] 7+ messages in thread[parent not found: <CANvN+enipwNVDS4QSsgh67FkpL-EoBsW0j0XRj5F2qSc7w+83A@mail.gmail.com>]
[parent not found: <HE1PR05MB1787EB4BBDE5DE3867EE47D5B1810@HE1PR05MB1787.eurprd05.prod.outlook.com>]
* RE: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) [not found] ` <HE1PR05MB1787EB4BBDE5DE3867EE47D5B1810@HE1PR05MB1787.eurprd05.prod.outlook.com> @ 2016-03-23 7:41 ` Thierry BERTAUD [not found] ` <CANvN+enHQqeXyimRCNnPS5Bp+hc+apVN5+-sKH8HLN=LhyeHHw@mail.gmail.com> 1 sibling, 0 replies; 7+ messages in thread From: Thierry BERTAUD @ 2016-03-23 7:41 UTC (permalink / raw) To: Andrey Kuzmin; +Cc: fio@vger.kernel.org Hi Andrey, >Covered in the FIO HOWTO under rw and percentage_random options. I tried this configuration but when i run, it doesn't do that�expected. [global] ioengine=posixaio invalidate=0 norandommap ramp_time=5 iodepth=8 runtime=60 time_based direct=1 numjobs=1 group_reporting filesize=100M blocksize=8k percentage_random=12,8 � � <= 12% seqread, 8%�seqwrite rw=randrw rwmixread=70 � �<= 70% randread and 30% randwrite for others [hdisk10] stonewall filename=/dev/rhdisk10 Regards, Thierry ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CANvN+enHQqeXyimRCNnPS5Bp+hc+apVN5+-sKH8HLN=LhyeHHw@mail.gmail.com>]
* RE: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) [not found] ` <CANvN+enHQqeXyimRCNnPS5Bp+hc+apVN5+-sKH8HLN=LhyeHHw@mail.gmail.com> @ 2016-03-23 11:34 ` Thierry BERTAUD 2016-03-25 4:14 ` Jens Axboe 0 siblings, 1 reply; 7+ messages in thread From: Thierry BERTAUD @ 2016-03-23 11:34 UTC (permalink / raw) To: Andrey Kuzmin; +Cc: fio@vger.kernel.org You tell: > You should define the mix first, under rw, using total percentage for reads and writes, and then specify the random/sequential break in each direction under pct_random. I understand that but it's not correct. ------- [global] rw=randrw rwmixread=70 � �<= 70% randread and 30% randwrite for others percentage_random=12,8 � � <= 12% seqread, 8%�seqwrite ------- Could you provide an example, please? Regards, Thierry ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) 2016-03-23 11:34 ` Thierry BERTAUD @ 2016-03-25 4:14 ` Jens Axboe 2016-03-25 6:33 ` Thierry BERTAUD 0 siblings, 1 reply; 7+ messages in thread From: Jens Axboe @ 2016-03-25 4:14 UTC (permalink / raw) To: Thierry BERTAUD, Andrey Kuzmin; +Cc: fio@vger.kernel.org On 03/23/2016 05:34 AM, Thierry BERTAUD wrote: > > You tell: > >> You should define the mix first, under rw, using total percentage for reads and writes, and then specify the random/sequential break in each direction under pct_random. > > I understand that but it's not correct. You have to be a bit more specific. What isn't correct? In general bug reporting, it's paramount to specify both what was used, what happened, and why that differed from the expectation that the user has. -- Jens Axboe ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) 2016-03-25 4:14 ` Jens Axboe @ 2016-03-25 6:33 ` Thierry BERTAUD 2016-03-25 15:07 ` Jens Axboe 0 siblings, 1 reply; 7+ messages in thread From: Thierry BERTAUD @ 2016-03-25 6:33 UTC (permalink / raw) To: Jens Axboe, Andrey Kuzmin; +Cc: fio@vger.kernel.org Hi Jens, Sorry my update lacked precision. I want to tell that the output of my command is not correct because the IO profile is the same at 70% randread and 30%randwrite (graph from SAN tools). I don't want to tell that the Andrey explanation is wrong. I tried this but it seems the problem is that i don't understand the documentation so it's why i don't have that i expect. # cat test.conf [global] ioengine=posixaio invalidate=0 norandommap ramp_time=5 iodepth=8 runtime=60 time_based direct=1 numjobs=1 group_reporting filesize=103M blocksize=8k #rw=randrw rwmixread=70 percentage_random=12,8 [hdisk2] stonewall filename=/dev/rhdisk2 # ./fio test.conf hdisk2: (g=0): rw=read, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 fio-2.3 Starting 1 process Jobs: 1 (f=1): [R(1)] [100.0% done] [217.2MB/0KB/0KB /s] [27.8K/0/0 iops] [eta 00m:00s] hdisk2: (groupid=0, jobs=1): err= 0: pid=213240: Fri Mar 25 07:27:47 2016 read : io=12872MB, bw=219671KB/s, iops=27458, runt= 60001msec slat (usec): min=14, max=9705, avg=28.74, stdev=34.99 clat (usec): min=2, max=10363, avg=221.22, stdev=48.30 lat (usec): min=144, max=10382, avg=249.52, stdev=50.07 clat percentiles (usec): | 1.00th=[ 149], 5.00th=[ 165], 10.00th=[ 175], 20.00th=[ 189], | 30.00th=[ 201], 40.00th=[ 211], 50.00th=[ 221], 60.00th=[ 231], | 70.00th=[ 241], 80.00th=[ 251], 90.00th=[ 266], 95.00th=[ 282], | 99.00th=[ 310], 99.50th=[ 326], 99.90th=[ 362], 99.95th=[ 386], | 99.99th=[ 466] bw (KB /s): min= 4, max=225344, per=99.17%, avg=217851.37, stdev=20237.94 lat (usec) : 4=0.01%, 10=0.01%, 50=0.01%, 100=0.01%, 250=78.56% lat (usec) : 500=21.42%, 750=0.01%, 1000=0.01% lat (msec) : 4=0.01%, 10=0.01%, 20=0.01% cpu : usr=8.22%, sys=28.38%, ctx=0, majf=0, minf=0 IO depths : 1=0.1%, 2=0.2%, 4=68.4%, 8=37.6%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=99.5%, 8=0.5%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=1647553/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=8 Run status group 0 (all jobs): READ: io=12872MB, aggrb=219671KB/s, minb=219671KB/s, maxb=219671KB/s, mint=60001msec, maxt=60001msec # Regards, Thierry ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) 2016-03-25 6:33 ` Thierry BERTAUD @ 2016-03-25 15:07 ` Jens Axboe 2016-03-25 20:20 ` Thierry BERTAUD 0 siblings, 1 reply; 7+ messages in thread From: Jens Axboe @ 2016-03-25 15:07 UTC (permalink / raw) To: Thierry BERTAUD, Andrey Kuzmin; +Cc: fio@vger.kernel.org On 03/25/2016 12:33 AM, Thierry BERTAUD wrote: > Hi Jens, > > Sorry my update lacked precision. I want to tell that the output of my command is not correct because the IO profile is the same at 70% randread and 30%randwrite (graph from SAN tools). > I don't want to tell that the Andrey explanation is wrong. > > I tried this but it seems the problem is that i don't understand the documentation so it's why i don't have that i expect. > # cat test.conf > [global] > ioengine=posixaio > invalidate=0 > norandommap > ramp_time=5 > iodepth=8 > runtime=60 > time_based > direct=1 > numjobs=1 > group_reporting > filesize=103M > blocksize=8k > #rw=randrw > rwmixread=70 > percentage_random=12,8 > > [hdisk2] > stonewall > filename=/dev/rhdisk2 > # ./fio test.conf > hdisk2: (g=0): rw=read, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 > fio-2.3 > Starting 1 process > Jobs: 1 (f=1): [R(1)] [100.0% done] [217.2MB/0KB/0KB /s] [27.8K/0/0 iops] [eta 00m:00s] > hdisk2: (groupid=0, jobs=1): err= 0: pid=213240: Fri Mar 25 07:27:47 2016 > read : io=12872MB, bw=219671KB/s, iops=27458, runt= 60001msec > slat (usec): min=14, max=9705, avg=28.74, stdev=34.99 > clat (usec): min=2, max=10363, avg=221.22, stdev=48.30 > lat (usec): min=144, max=10382, avg=249.52, stdev=50.07 > clat percentiles (usec): > | 1.00th=[ 149], 5.00th=[ 165], 10.00th=[ 175], 20.00th=[ 189], > | 30.00th=[ 201], 40.00th=[ 211], 50.00th=[ 221], 60.00th=[ 231], > | 70.00th=[ 241], 80.00th=[ 251], 90.00th=[ 266], 95.00th=[ 282], > | 99.00th=[ 310], 99.50th=[ 326], 99.90th=[ 362], 99.95th=[ 386], > | 99.99th=[ 466] > bw (KB /s): min= 4, max=225344, per=99.17%, avg=217851.37, stdev=20237.94 > lat (usec) : 4=0.01%, 10=0.01%, 50=0.01%, 100=0.01%, 250=78.56% > lat (usec) : 500=21.42%, 750=0.01%, 1000=0.01% > lat (msec) : 4=0.01%, 10=0.01%, 20=0.01% > cpu : usr=8.22%, sys=28.38%, ctx=0, majf=0, minf=0 > IO depths : 1=0.1%, 2=0.2%, 4=68.4%, 8=37.6%, 16=0.0%, 32=0.0%, >=64=0.0% > submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% > complete : 0=0.0%, 4=99.5%, 8=0.5%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% > issued : total=r=1647553/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0 > latency : target=0, window=0, percentile=100.00%, depth=8 > > Run status group 0 (all jobs): > READ: io=12872MB, aggrb=219671KB/s, minb=219671KB/s, maxb=219671KB/s, mint=60001msec, maxt=60001msec I added a small hack to the null IO engine, to show randomness and distribution. If I run your suggested job: ./fio --name=null --ioengine=null --rw=randrw --size=10g --bs=4k --rwmixread=70 --percentage_random=12,8 I get: READS: 69.96% (1834089) Seq: 88.00% (1613999) Rnd: 12.00% (220090) WRITES: 30.04% (787351) Seq: 91.98% (724171) Rnd: 8.02% (63180) which means that part is working as expected. But from your initial description, that's not what you want: 1. 12% seqread 2. 8% seqwrite 3. The rest 80% are random of this 30% (24% from total) is write and 70% (56% from total) reads. which is 20% of the IO is sequential, and of that 20%, 40% are writes, 60% are reads. 80% of the total IO are random, and within that split, you want a 70/30 read/write split. Fio can't do a double split like that in a single job, but if you can tolerate mixing the 60/40 and 70/30 read/write between sequential and random, then you can make it work. Or you can split it in two jobs, one doing the sequential part and the other the random. The you can use the flow parameters to pace them at 20/80 ratios. -- Jens Axboe ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) 2016-03-25 15:07 ` Jens Axboe @ 2016-03-25 20:20 ` Thierry BERTAUD 0 siblings, 0 replies; 7+ messages in thread From: Thierry BERTAUD @ 2016-03-25 20:20 UTC (permalink / raw) To: Jens Axboe, Andrey Kuzmin; +Cc: fio@vger.kernel.org Hi Jens, Thanks for update. >Fio can't do a double split like that in a single job, but if you can >tolerate mixing the 60/40 and 70/30 read/write between sequential and >random, then you can make it work. >Or you can split it in two jobs, one doing the sequential part and the >other the random. The you can use the flow parameters to pace them at >20/80 ratios. I tried to use choice 2. ------------------------------ [global] ioengine=posixaio invalidate=0 norandommap ramp_time=5 iodepth=8 runtime=10 time_based direct=1 #numjobs=1 group_reporting filesize=10M blocksize=8k [hdisk2] stonewall filename=/dev/rhdisk2 rw=readwrite rwmixread=60 flow=2 [hdisk2a] stonewall filename=/dev/rhdisk2 rw=randrw rwmixread=70 flow=8 ------------------------------ # ./fio inftest.conf hdisk2: (g=0): rw=rw, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 hdisk2a: (g=1): rw=randrw, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 fio-2.3 Starting 2 processes Jobs: 1 (f=0): [/(1),P(1)] [-.-% done] [0KB/0KB/0KB /s] [0/0/0 iops] [eta 00m:30s] .. The fio process eat a lot of cpu but no disk activity. Some output from topas. So i think i don't use correctly the flow parmeter and perhaps do some loops somewhere into fio. ------------------ CPU User% Kern% Wait% Idle% ALL 46.9 53.1 0.0 0.0 Disk Busy% KBPS TPS KB-Read KB-Writ hdisk2 0.0 0.0 0.0 0.0 0.0 Name PID CPU% PgSp Owner fio 504000 46.8 0.3 root sshd 549094 28.6 1.0 root fio 393304 24.0 0.2 root topas 462868 0.1 1.9 root -------------------------------------- If i do a ctrl+c, i have the following: # ./fio inftest.conf hdisk2: (g=0): rw=rw, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 hdisk2a: (g=1): rw=randrw, bs=8K-8K/8K-8K/8K-8K, ioengine=posixaio, iodepth=8 fio-2.3 Starting 2 processes Jobs: 1 (f=0): [/(1),P(1)] [-.-% done] [0KB/0KB/0KB /s] [0/0/0 iops] [eta 00m:30s] fio: terminating on signal 2 fio: terminating on signal 2 Jobs: 0 (f=0): [/(1),P(1)] [-.-% done] [0KB/0KB/0KB /s] [0/0/0 iops] [eta 00m:30s] hdisk2: (groupid=0, jobs=1): err= 0: pid=504000: Fri Mar 25 21:19:52 2016 read : io=32768B, bw=32000KB/s, iops=0, runt= 1msec slat (usec): min=16, max=194, avg=25.25, stdev=15.63 clat percentiles (usec): | 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0], | 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0], | 70.00th=[ 0], 80.00th=[ 0], 90.00th=[ 0], 95.00th=[ 0], | 99.00th=[ 0], 99.50th=[ 0], 99.90th=[ 0], 99.95th=[ 0], | 99.99th=[ 0] write: io=16384B, bw=16000KB/s, iops=0, runt= 1msec slat (usec): min=16, max=105, avg=26.12, stdev=13.44 clat percentiles (usec): | 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0], | 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0], | 70.00th=[ 0], 80.00th=[ 0], 90.00th=[ 0], 95.00th=[ 0], | 99.00th=[ 0], 99.50th=[ 0], 99.90th=[ 0], 99.95th=[ 0], | 99.99th=[ 0] cpu : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=0 IO depths : 1=0.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=98.0%, 8=2.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=0/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=8 Run status group 0 (all jobs): READ: io=32KB, aggrb=32000KB/s, minb=32000KB/s, maxb=32000KB/s, mint=1msec, maxt=1msec WRITE: io=16KB, aggrb=16000KB/s, minb=16000KB/s, maxb=16000KB/s, mint=1msec, maxt=1msec Run status group 1 (all jobs): # Regards, Thierry ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-03-25 20:20 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-22 19:17 IO mixed : 12% seqread, 8% seqwrite, 80% random (30% W, 70%R) Thierry BERTAUD
[not found] ` <CANvN+enipwNVDS4QSsgh67FkpL-EoBsW0j0XRj5F2qSc7w+83A@mail.gmail.com>
[not found] ` <HE1PR05MB1787EB4BBDE5DE3867EE47D5B1810@HE1PR05MB1787.eurprd05.prod.outlook.com>
2016-03-23 7:41 ` Thierry BERTAUD
[not found] ` <CANvN+enHQqeXyimRCNnPS5Bp+hc+apVN5+-sKH8HLN=LhyeHHw@mail.gmail.com>
2016-03-23 11:34 ` Thierry BERTAUD
2016-03-25 4:14 ` Jens Axboe
2016-03-25 6:33 ` Thierry BERTAUD
2016-03-25 15:07 ` Jens Axboe
2016-03-25 20:20 ` Thierry BERTAUD
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.