* FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS
@ 2017-04-05 16:25 GV Govindasamy
2017-04-05 19:46 ` Sitsofe Wheeler
0 siblings, 1 reply; 4+ messages in thread
From: GV Govindasamy @ 2017-04-05 16:25 UTC (permalink / raw)
To: fio
Hello All
In the following example, I would like 90 read ops and 10 write ops. Regardless of the values in "bssplit" or "bs" and "rwmixread/rwmixwrite" values, not able to see FIO doing 90:10 read:writes and total ops turns out to be ~20+~20 = ~40 IOPS instead of 100.
Am I missing something here?
Thanks
+GV
=============================================
$ ./fio-2.19 --version (compiled with: ./configure --build-static; make on CentOS release 6.7/3.10.0-229)
fio-2.19
==========================
$ cat output/fio/bssplit_rwmix.fio
[global]
ioengine=libaio
direct=1
time_based
norandommap
group_reporting
disk_util=0
continue_on_error=all
rate_process=poisson
[db-oltp-w]
bssplit=8k/90:16k/10
size=128G
filename=/dev/sdg
rw=randrw
iodepth=8
rwmixread=90
rwmixwrite=10
rate_iops=90,10,0
==========================
$ iostat -x 2 sdg
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.13 0.88 0.00 99.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0.00 0.00 17.50 17.50 288.00 312.00 17.14 0.03 0.93 0.31 1.54 0.93 3.25
avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.00 0.12 1.00 0.00 98.75
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0.00 0.00 20.00 19.50 352.00 336.00 17.42 0.04 1.03 0.45 1.62 0.92 3.65
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 1.00 0.00 99.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0.00 0.00 22.00 21.00 400.00 352.00 17.49 0.05 1.12 0.48 1.79 1.06 4.55
==========================
$ sudo ./fio-2.19 --runtime 120 --eta-newline=30 output/fio/bssplit_rwmix.fio
db-oltp-w: (g=0): rw=randrw, bs=(R) 8192B-16.0KiB, (W) 8192B-16.0KiB, (T) 8192B-16.0KiB, ioengine=libaio, iodepth=8
fio-2.19
Starting 1 process
Jobs: 1 (f=1), 0-100 IOPS: [m(1)][26.4%][r=200KiB/s,w=176KiB/s][r=22,w=21 IOPS][eta 01m:29s]
Jobs: 1 (f=1), 0-100 IOPS: [m(1)][51.2%][r=176KiB/s,w=168KiB/s][r=20,w=20 IOPS][eta 00m:59s]
Jobs: 1 (f=1), 0-100 IOPS: [m(1)][76.0%][r=128KiB/s,w=128KiB/s][r=16,w=16 IOPS][eta 00m:29s]
Jobs: 1 (f=1), 0-100 IOPS: [m(1)][100.0%][r=144KiB/s,w=112KiB/s][r=15,w=14 IOPS][eta 00m:00s]
db-oltp-w: (groupid=0, jobs=1): err= 0: pid=1663: Wed Apr 5 16:15:29 2017
read: IOPS=18, BW=164KiB/s (168kB/s)(19.3MiB/120160msec)
slat (usec): min=5, max=72, avg=32.59, stdev=10.66
clat (usec): min=195, max=6884, avg=520.15, stdev=342.01
lat (usec): min=211, max=6915, avg=552.73, stdev=341.11
clat percentiles (usec):
| 1.00th=[ 235], 5.00th=[ 294], 10.00th=[ 342], 20.00th=[ 398],
| 30.00th=[ 430], 40.00th=[ 454], 50.00th=[ 482], 60.00th=[ 516],
| 70.00th=[ 548], 80.00th=[ 596], 90.00th=[ 668], 95.00th=[ 756],
| 99.00th=[ 972], 99.50th=[ 3120], 99.90th=[ 5280], 99.95th=[ 6304],
| 99.99th=[ 6880]
write: IOPS=18, BW=161KiB/s (165kB/s)(18.9MiB/120160msec)
slat (usec): min=8, max=101, avg=40.08, stdev= 9.08
clat (usec): min=817, max=12413, avg=1720.19, stdev=692.15
lat (usec): min=853, max=12449, avg=1760.27, stdev=692.64
clat percentiles (usec):
| 1.00th=[ 1032], 5.00th=[ 1176], 10.00th=[ 1256], 20.00th=[ 1384],
| 30.00th=[ 1480], 40.00th=[ 1576], 50.00th=[ 1640], 60.00th=[ 1704],
| 70.00th=[ 1800], 80.00th=[ 1896], 90.00th=[ 2040], 95.00th=[ 2192],
| 99.00th=[ 5408], 99.50th=[ 6496], 99.90th=[ 8512], 99.95th=[ 9920],
| 99.99th=[12352]
lat (usec) : 250=0.86%, 500=26.90%, 750=19.85%, 1000=2.40%
lat (msec) : 2=43.75%, 4=5.22%, 10=1.00%, 20=0.02%
cpu : usr=0.08%, sys=0.17%, ctx=8407, majf=0, minf=34
IO depths : 1=91.7%, 2=8.1%, 4=0.1%, 8=0.1%, 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=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwt: total=2213,2196,0, short=0,0,0, dropped=0,0,0
errors : total=0, first_error=0/<Success>
latency : target=0, window=0, percentile=100.00%, depth=8
Run status group 0 (all jobs):
READ: bw=164KiB/s (168kB/s), 164KiB/s-164KiB/s (168kB/s-168kB/s), io=19.3MiB (20.2MB), run=120160-120160msec
WRITE: bw=161KiB/s (165kB/s), 161KiB/s-161KiB/s (165kB/s-165kB/s), io=18.9MiB (19.8MB), run=120160-120160msec
==========================
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS
2017-04-05 16:25 FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS GV Govindasamy
@ 2017-04-05 19:46 ` Sitsofe Wheeler
2017-04-06 21:13 ` GV Govindasamy
0 siblings, 1 reply; 4+ messages in thread
From: Sitsofe Wheeler @ 2017-04-05 19:46 UTC (permalink / raw)
To: GV Govindasamy; +Cc: fio
Hi,
On 5 April 2017 at 17:25, GV Govindasamy <gv.govindasamy@nutanix.com> wrote:
>
> In the following example, I would like 90 read ops and 10 write ops. Regardless of the values in "bssplit" or "bs" and "rwmixread/rwmixwrite" values, not able to see FIO doing 90:10 read:writes and total ops turns out to be ~20+~20 = ~40 IOPS instead of 100.
>
> Am I missing something here?
>
> Thanks
> +GV
>
> =============================================
> $ ./fio-2.19 --version (compiled with: ./configure --build-static; make on CentOS release 6.7/3.10.0-229)
> fio-2.19
>
> ==========================
> $ cat output/fio/bssplit_rwmix.fio
> [global]
> ioengine=libaio
> direct=1
> time_based
> norandommap
> group_reporting
> disk_util=0
> continue_on_error=all
> rate_process=poisson
>
> [db-oltp-w]
> bssplit=8k/90:16k/10
> size=128G
> filename=/dev/sdg
> rw=randrw
> iodepth=8
> rwmixread=90
> rwmixwrite=10
> rate_iops=90,10,0
I think the problem may lie with rate_process=poisson - if you remove
that does the workload perform better? Perhaps it is not treating the
read and write rates independently...
--
Sitsofe | http://sucs.org/~sits/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS
2017-04-05 19:46 ` Sitsofe Wheeler
@ 2017-04-06 21:13 ` GV Govindasamy
2017-04-07 5:53 ` Sitsofe Wheeler
0 siblings, 1 reply; 4+ messages in thread
From: GV Govindasamy @ 2017-04-06 21:13 UTC (permalink / raw)
To: Sitsofe Wheeler; +Cc: fio
Thanks Sitsofe. After removing “rate_process=poisson” and giving “rate=<in-bytes>”, I can see the IOPS I have calculated for. In this case, 90 read ops and 10 write ops.
“rate_process=poisson” is a bug in this case then?
Thanks
+GV
=============================
[global]
ioengine=libaio
direct=1
time_based
norandommap
group_reporting
disk_util=0
continue_on_error=all
;rate_process=poisson
[db-oltp-w]
bssplit=8k/90:16k/10
;bs=8k
size=128G
filename=/dev/sdg
rw=randrw
iodepth=8
rwmixread=90
rwmixwrite=10
write_iolog=rwmix.csv
;rate_iops=90,10,
rate=811008,90112,
===============================
On 4/5/17, 3:46 PM, "Sitsofe Wheeler" <sitsofe@gmail.com> wrote:
Hi,
On 5 April 2017 at 17:25, GV Govindasamy <gv.govindasamy@nutanix.com> wrote:
>
> In the following example, I would like 90 read ops and 10 write ops. Regardless of the values in "bssplit" or "bs" and "rwmixread/rwmixwrite" values, not able to see FIO doing 90:10 read:writes and total ops turns out to be ~20+~20 = ~40 IOPS instead of 100.
>
> Am I missing something here?
>
> Thanks
> +GV
>
> =============================================
> $ ./fio-2.19 --version (compiled with: ./configure --build-static; make on CentOS release 6.7/3.10.0-229)
> fio-2.19
>
> ==========================
> $ cat output/fio/bssplit_rwmix.fio
> [global]
> ioengine=libaio
> direct=1
> time_based
> norandommap
> group_reporting
> disk_util=0
> continue_on_error=all
> rate_process=poisson
>
> [db-oltp-w]
> bssplit=8k/90:16k/10
> size=128G
> filename=/dev/sdg
> rw=randrw
> iodepth=8
> rwmixread=90
> rwmixwrite=10
> rate_iops=90,10,0
I think the problem may lie with rate_process=poisson - if you remove
that does the workload perform better? Perhaps it is not treating the
read and write rates independently...
--
Sitsofe | http://sucs.org/~sits/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS
2017-04-06 21:13 ` GV Govindasamy
@ 2017-04-07 5:53 ` Sitsofe Wheeler
0 siblings, 0 replies; 4+ messages in thread
From: Sitsofe Wheeler @ 2017-04-07 5:53 UTC (permalink / raw)
To: GV Govindasamy; +Cc: fio
On 6 April 2017 at 22:13, GV Govindasamy <gv.govindasamy@nutanix.com> wrote:
> Thanks Sitsofe. After removing “rate_process=poisson” and giving “rate=<in-bytes>”, I can see the IOPS I have calculated for. In this case, 90 read ops and 10 write ops.
>
> “rate_process=poisson” is a bug in this case then?
I'd say so because I'd have expected each I/O direction to have
poisson applied to it independently of other I/O directions IF it has
a differing submission rate to other I/O directions. Without doing
this I'm unsure how the rates achieved could be independent of each
other.
--
Sitsofe | http://sucs.org/~sits/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-04-07 5:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-05 16:25 FIO achieves only 50:50 of read:write IOPS when rwmix is not 50:50 and achieves only about 40% of total IOPS GV Govindasamy
2017-04-05 19:46 ` Sitsofe Wheeler
2017-04-06 21:13 ` GV Govindasamy
2017-04-07 5:53 ` Sitsofe Wheeler
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.