All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.