* 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
* 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
* 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.