Flexible I/O Tester development
 help / color / mirror / Atom feed
* multiple block devices question
@ 2014-07-02 19:42 Yuyang (Alex) Wang
  2014-07-02 19:50 ` Jens Axboe
  0 siblings, 1 reply; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-02 19:42 UTC (permalink / raw)
  To: fio

hi all,

I am using FIO (2.1.7) to profile block level performance of multiple
RAID devices. (see config file below). The test is done on a capable
16-core server. With a sigle raid device, I am getting roughly
1.4GB/s, with two devices in place, I am still getting around 1.4GB/s,
which is weird. Another in-house developed benchmark tool, running
SINGLE-thread suggested we can almost double. I could get double the
performance through FIO by configuring two jobs, with each job
handling one device only. However, it still puzzles me as to why a
single process FIO can't drive the performance of two devices. Did I
do anything wrong as to the configure file?

Thanks

Alex.


[globals]

rw=write
ioengine=libaio
iodepth=16
direct=1
blocksize=1m
runtime=30

[devices]
filename=/dev/mapper/raid-0
filename=/dev/mapper/raid-1

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-02 19:42 multiple block devices question Yuyang (Alex) Wang
@ 2014-07-02 19:50 ` Jens Axboe
  2014-07-02 20:36   ` Yuyang (Alex) Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Jens Axboe @ 2014-07-02 19:50 UTC (permalink / raw)
  To: Yuyang (Alex) Wang, fio

On 07/02/2014 01:42 PM, Yuyang (Alex) Wang wrote:
> hi all,
> 
> I am using FIO (2.1.7) to profile block level performance of multiple
> RAID devices. (see config file below). The test is done on a capable
> 16-core server. With a sigle raid device, I am getting roughly
> 1.4GB/s, with two devices in place, I am still getting around 1.4GB/s,
> which is weird. Another in-house developed benchmark tool, running
> SINGLE-thread suggested we can almost double. I could get double the
> performance through FIO by configuring two jobs, with each job
> handling one device only. However, it still puzzles me as to why a
> single process FIO can't drive the performance of two devices. Did I
> do anything wrong as to the configure file?
> 
> Thanks
> 
> Alex.
> 
> 
> [globals]
> 
> rw=write
> ioengine=libaio
> iodepth=16
> direct=1
> blocksize=1m
> runtime=30
> 
> [devices]
> filename=/dev/mapper/raid-0
> filename=/dev/mapper/raid-1

You are overwriting filename here, hence running with just one device.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-02 19:50 ` Jens Axboe
@ 2014-07-02 20:36   ` Yuyang (Alex) Wang
  2014-07-02 23:38     ` Carl Zwanzig
  2014-07-03 18:12     ` Jeff Moyer
  0 siblings, 2 replies; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-02 20:36 UTC (permalink / raw)
  To: Jens Axboe; +Cc: fio

Jens, thanks for the reply.

I also tried the following as the HOWTO suggested, and getting similar results
[devices]
filename=/dev/mapper/raid0:/dev/mapper/raid1


This may be silly part on me misreading the manual, what's correct way
of specifying multiple devices?

thanks

Alex





On Wed, Jul 2, 2014 at 3:50 PM, Jens Axboe <axboe@kernel.dk> wrote:
> On 07/02/2014 01:42 PM, Yuyang (Alex) Wang wrote:
>> hi all,
>>
>> I am using FIO (2.1.7) to profile block level performance of multiple
>> RAID devices. (see config file below). The test is done on a capable
>> 16-core server. With a sigle raid device, I am getting roughly
>> 1.4GB/s, with two devices in place, I am still getting around 1.4GB/s,
>> which is weird. Another in-house developed benchmark tool, running
>> SINGLE-thread suggested we can almost double. I could get double the
>> performance through FIO by configuring two jobs, with each job
>> handling one device only. However, it still puzzles me as to why a
>> single process FIO can't drive the performance of two devices. Did I
>> do anything wrong as to the configure file?
>>
>> Thanks
>>
>> Alex.
>>
>>
>> [globals]
>>
>> rw=write
>> ioengine=libaio
>> iodepth=16
>> direct=1
>> blocksize=1m
>> runtime=30
>>
>> [devices]
>> filename=/dev/mapper/raid-0
>> filename=/dev/mapper/raid-1
>
> You are overwriting filename here, hence running with just one device.
>
> --
> Jens Axboe
>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: multiple block devices question
  2014-07-02 20:36   ` Yuyang (Alex) Wang
@ 2014-07-02 23:38     ` Carl Zwanzig
  2014-07-03 17:28       ` Yuyang (Alex) Wang
  2014-07-03 18:12     ` Jeff Moyer
  1 sibling, 1 reply; 12+ messages in thread
From: Carl Zwanzig @ 2014-07-02 23:38 UTC (permalink / raw)
  To: Yuyang (Alex) Wang, Jens Axboe; +Cc: fio@vger.kernel.org

> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
> Behalf Of Yuyang (Alex) Wang
> Sent: Wednesday, July 02, 2014 1:36 PM

> I also tried the following as the HOWTO suggested, and getting similar
> results
> [devices]
> filename=/dev/mapper/raid0:/dev/mapper/raid1

I specify them as separate jobs:
[devices0]
filename=/dev/mapper/raid0
[devices1]
filename=/dev/mapper/raid1

without the "stonewall" directive, the jobs will run simultaneously.

z!


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-02 23:38     ` Carl Zwanzig
@ 2014-07-03 17:28       ` Yuyang (Alex) Wang
  2014-07-03 17:45         ` David Nellans
  0 siblings, 1 reply; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-03 17:28 UTC (permalink / raw)
  To: Carl Zwanzig; +Cc: Jens Axboe, fio@vger.kernel.org

Carl,

Specifying them as separate jobs will do what I expect. However, in
this case, I am seeking to know how much performance and how many
devices can a __single__ FIO process can drive. If my above
configuration is correct, then, for some reason, the single process
doesn't increase with more devices at its disposal, not as I have seen
from another benchmark tool - which is puzzling. I am curious to
understand why.

Best,

A.

On Wed, Jul 2, 2014 at 7:38 PM, Carl Zwanzig <cpz@coraid.com> wrote:
>> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
>> Behalf Of Yuyang (Alex) Wang
>> Sent: Wednesday, July 02, 2014 1:36 PM
>
>> I also tried the following as the HOWTO suggested, and getting similar
>> results
>> [devices]
>> filename=/dev/mapper/raid0:/dev/mapper/raid1
>
> I specify them as separate jobs:
> [devices0]
> filename=/dev/mapper/raid0
> [devices1]
> filename=/dev/mapper/raid1
>
> without the "stonewall" directive, the jobs will run simultaneously.
>
> z!
>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-03 17:28       ` Yuyang (Alex) Wang
@ 2014-07-03 17:45         ` David Nellans
  2014-07-03 17:52           ` Yuyang (Alex) Wang
  0 siblings, 1 reply; 12+ messages in thread
From: David Nellans @ 2014-07-03 17:45 UTC (permalink / raw)
  To: Yuyang (Alex) Wang, Carl Zwanzig; +Cc: Jens Axboe, fio@vger.kernel.org

On 07/03/2014 12:28 PM, Yuyang (Alex) Wang wrote:
> Carl,
>
> Specifying them as separate jobs will do what I expect. However, in
> this case, I am seeking to know how much performance and how many
> devices can a __single__ FIO process can drive. If my above
> configuration is correct, then, for some reason, the single process
> doesn't increase with more devices at its disposal, not as I have seen
> from another benchmark tool - which is puzzling. I am curious to
> understand why.
>
> Best,
>
> A.
If you want to benchmark fio throughput or the block layer, not your 
actual raid array,
then use a ramdisk.  There are lots of flash devices out there now which 
will push far
more than 1.4GB/s from a single device,  rest assured fio isn't your 
limitation here.
1.4 GB/s with 1M block sizes isn't even 2k IOPS.  fio pushes 500k IOPS 
through the block layer
without issue, its not your limiting factor.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-03 17:45         ` David Nellans
@ 2014-07-03 17:52           ` Yuyang (Alex) Wang
  0 siblings, 0 replies; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-03 17:52 UTC (permalink / raw)
  To: David Nellans; +Cc: Carl Zwanzig, Jens Axboe, fio@vger.kernel.org

I get it and agree with you that FIO shouldn't be the limiting factor,
but I don't get it why I am not getting sensible numbers when I
increase the number of devices. Apparently, I am only interested in
actual throughput FIO can drive my raid array, rather than ramdisk in
this case.

Thanks

A.

On Thu, Jul 3, 2014 at 1:45 PM, David Nellans <david@nellans.org> wrote:
> On 07/03/2014 12:28 PM, Yuyang (Alex) Wang wrote:
>>
>> Carl,
>>
>> Specifying them as separate jobs will do what I expect. However, in
>> this case, I am seeking to know how much performance and how many
>> devices can a __single__ FIO process can drive. If my above
>> configuration is correct, then, for some reason, the single process
>> doesn't increase with more devices at its disposal, not as I have seen
>> from another benchmark tool - which is puzzling. I am curious to
>> understand why.
>>
>> Best,
>>
>> A.
>
> If you want to benchmark fio throughput or the block layer, not your actual
> raid array,
> then use a ramdisk.  There are lots of flash devices out there now which
> will push far
> more than 1.4GB/s from a single device,  rest assured fio isn't your
> limitation here.
> 1.4 GB/s with 1M block sizes isn't even 2k IOPS.  fio pushes 500k IOPS
> through the block layer
> without issue, its not your limiting factor.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-02 20:36   ` Yuyang (Alex) Wang
  2014-07-02 23:38     ` Carl Zwanzig
@ 2014-07-03 18:12     ` Jeff Moyer
  2014-07-03 18:21       ` Hinson, Roger
  2014-07-03 18:22       ` Yuyang (Alex) Wang
  1 sibling, 2 replies; 12+ messages in thread
From: Jeff Moyer @ 2014-07-03 18:12 UTC (permalink / raw)
  To: Yuyang (Alex) Wang; +Cc: Jens Axboe, fio

"Yuyang (Alex) Wang" <yyalex.wang@gmail.com> writes:

> Jens, thanks for the reply.
>
> I also tried the following as the HOWTO suggested, and getting similar results
> [devices]
> filename=/dev/mapper/raid0:/dev/mapper/raid1
>
>
> This may be silly part on me misreading the manual, what's correct way
> of specifying multiple devices?

That looks ok to me.  What happens if you double your queue depth?

Cheers,
Jeff


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: multiple block devices question
  2014-07-03 18:12     ` Jeff Moyer
@ 2014-07-03 18:21       ` Hinson, Roger
  2014-07-03 18:31         ` Yuyang (Alex) Wang
  2014-07-03 18:22       ` Yuyang (Alex) Wang
  1 sibling, 1 reply; 12+ messages in thread
From: Hinson, Roger @ 2014-07-03 18:21 UTC (permalink / raw)
  To: Jeff Moyer, Yuyang (Alex) Wang; +Cc: Jens Axboe, fio@vger.kernel.org

It doesn't work properly with 2.1.7.  it only grabs the first name in filename.  I switched to 2.1.10 to fix that problem for me.

Roger


-----Original Message-----
From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On Behalf Of Jeff Moyer
Sent: Thursday, July 03, 2014 11:12 AM
To: Yuyang (Alex) Wang
Cc: Jens Axboe; fio@vger.kernel.org
Subject: Re: multiple block devices question

"Yuyang (Alex) Wang" <yyalex.wang@gmail.com> writes:

> Jens, thanks for the reply.
>
> I also tried the following as the HOWTO suggested, and getting similar 
> results [devices]
> filename=/dev/mapper/raid0:/dev/mapper/raid1
>
>
> This may be silly part on me misreading the manual, what's correct way 
> of specifying multiple devices?

That looks ok to me.  What happens if you double your queue depth?

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@vger.kernel.org More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-03 18:12     ` Jeff Moyer
  2014-07-03 18:21       ` Hinson, Roger
@ 2014-07-03 18:22       ` Yuyang (Alex) Wang
  2014-07-03 18:39         ` Jens Axboe
  1 sibling, 1 reply; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-03 18:22 UTC (permalink / raw)
  To: Jeff Moyer; +Cc: Jens Axboe, fio@vger.kernel.org

hi Jeff,

iodepth doesn't seem to make difference - see output (this is with two
raid array)

devices: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
fio-2.1.7
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0KB/1227MB/0KB /s] [0/1227/0 iops]
[eta 00m:00s]
devices: (groupid=0, jobs=1): err= 0: pid=91658: Thu Jul  3 14:20:42 2014
  write: io=41368MB, bw=1376.7MB/s, iops=1376, runt= 30050msec
    slat (usec): min=104, max=8419, avg=328.49, stdev=63.54
    clat (usec): min=4, max=114758, avg=22883.96, stdev=8585.56
     lat (msec): min=2, max=115, avg=23.21, stdev= 8.58
    clat percentiles (msec):
     |  1.00th=[   11],  5.00th=[   12], 10.00th=[   12], 20.00th=[   21],
     | 30.00th=[   23], 40.00th=[   23], 50.00th=[   23], 60.00th=[   25],
     | 70.00th=[   25], 80.00th=[   26], 90.00th=[   28], 95.00th=[   35],
     | 99.00th=[   61], 99.50th=[   68], 99.90th=[   80], 99.95th=[   89],
     | 99.99th=[  110]
    bw (MB  /s): min=  926, max= 2790, per=100.00%, avg=1376.74, stdev=420.52
    lat (usec) : 10=0.01%
    lat (msec) : 4=0.03%, 10=0.39%, 20=19.28%, 50=78.27%, 100=1.99%
    lat (msec) : 250=0.04%
  cpu          : usr=30.09%, sys=17.91%, ctx=19628, majf=0, minf=26
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=99.9%, >=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.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=41368/d=0, short=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=32

Run status group 0 (all jobs):
  WRITE: io=41368MB, aggrb=1376.7MB/s, minb=1376.7MB/s,
maxb=1376.7MB/s, mint=30050msec, maxt=30050msec



On Thu, Jul 3, 2014 at 2:12 PM, Jeff Moyer <jmoyer@redhat.com> wrote:
> "Yuyang (Alex) Wang" <yyalex.wang@gmail.com> writes:
>
>> Jens, thanks for the reply.
>>
>> I also tried the following as the HOWTO suggested, and getting similar results
>> [devices]
>> filename=/dev/mapper/raid0:/dev/mapper/raid1
>>
>>
>> This may be silly part on me misreading the manual, what's correct way
>> of specifying multiple devices?
>
> That looks ok to me.  What happens if you double your queue depth?
>
> Cheers,
> Jeff


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-03 18:21       ` Hinson, Roger
@ 2014-07-03 18:31         ` Yuyang (Alex) Wang
  0 siblings, 0 replies; 12+ messages in thread
From: Yuyang (Alex) Wang @ 2014-07-03 18:31 UTC (permalink / raw)
  To: Hinson, Roger; +Cc: Jeff Moyer, Jens Axboe, fio@vger.kernel.org

Kudos Roger, that solves the problem.
I didn't realize one release behind, the filename parsing has this bug in it.

Thanks!

A.

On Thu, Jul 3, 2014 at 2:21 PM, Hinson, Roger <Roger_Hinson@intuit.com> wrote:
> It doesn't work properly with 2.1.7.  it only grabs the first name in filename.  I switched to 2.1.10 to fix that problem for me.
>
> Roger
>
>
> -----Original Message-----
> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On Behalf Of Jeff Moyer
> Sent: Thursday, July 03, 2014 11:12 AM
> To: Yuyang (Alex) Wang
> Cc: Jens Axboe; fio@vger.kernel.org
> Subject: Re: multiple block devices question
>
> "Yuyang (Alex) Wang" <yyalex.wang@gmail.com> writes:
>
>> Jens, thanks for the reply.
>>
>> I also tried the following as the HOWTO suggested, and getting similar
>> results [devices]
>> filename=/dev/mapper/raid0:/dev/mapper/raid1
>>
>>
>> This may be silly part on me misreading the manual, what's correct way
>> of specifying multiple devices?
>
> That looks ok to me.  What happens if you double your queue depth?
>
> Cheers,
> Jeff
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@vger.kernel.org More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: multiple block devices question
  2014-07-03 18:22       ` Yuyang (Alex) Wang
@ 2014-07-03 18:39         ` Jens Axboe
  0 siblings, 0 replies; 12+ messages in thread
From: Jens Axboe @ 2014-07-03 18:39 UTC (permalink / raw)
  To: Yuyang (Alex) Wang, Jeff Moyer; +Cc: fio@vger.kernel.org

On 07/03/2014 12:22 PM, Yuyang (Alex) Wang wrote:
> hi Jeff,
> 
> iodepth doesn't seem to make difference - see output (this is with two
> raid array)
> 
> devices: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
> fio-2.1.7
> Starting 1 process
> Jobs: 1 (f=1): [W] [100.0% done] [0KB/1227MB/0KB /s] [0/1227/0 iops]
> [eta 00m:00s]
> devices: (groupid=0, jobs=1): err= 0: pid=91658: Thu Jul  3 14:20:42 2014
>   write: io=41368MB, bw=1376.7MB/s, iops=1376, runt= 30050msec
>     slat (usec): min=104, max=8419, avg=328.49, stdev=63.54
>     clat (usec): min=4, max=114758, avg=22883.96, stdev=8585.56
>      lat (msec): min=2, max=115, avg=23.21, stdev= 8.58
>     clat percentiles (msec):
>      |  1.00th=[   11],  5.00th=[   12], 10.00th=[   12], 20.00th=[   21],
>      | 30.00th=[   23], 40.00th=[   23], 50.00th=[   23], 60.00th=[   25],
>      | 70.00th=[   25], 80.00th=[   26], 90.00th=[   28], 95.00th=[   35],
>      | 99.00th=[   61], 99.50th=[   68], 99.90th=[   80], 99.95th=[   89],
>      | 99.99th=[  110]
>     bw (MB  /s): min=  926, max= 2790, per=100.00%, avg=1376.74, stdev=420.52
>     lat (usec) : 10=0.01%
>     lat (msec) : 4=0.03%, 10=0.39%, 20=19.28%, 50=78.27%, 100=1.99%
>     lat (msec) : 250=0.04%
>   cpu          : usr=30.09%, sys=17.91%, ctx=19628, majf=0, minf=26
>   IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=99.9%, >=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.1%, 64=0.0%, >=64=0.0%
>      issued    : total=r=0/w=41368/d=0, short=r=0/w=0/d=0
>      latency   : target=0, window=0, percentile=100.00%, depth=32
> 
> Run status group 0 (all jobs):
>   WRITE: io=41368MB, aggrb=1376.7MB/s, minb=1376.7MB/s,
> maxb=1376.7MB/s, mint=30050msec, maxt=30050msec

Just tested on a box here, for comparison. It has 16 SCSI disks, each
does roughly 160MB/sec in bandwidth. Adding disks scales bw linearly for
me, no problems observed.

You're submission latency is fairly low, so it should not be a problem
with fio getting stuck in dm on submission. usr+sys is pretty high
though, for such a light workload.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-07-03 18:39 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-02 19:42 multiple block devices question Yuyang (Alex) Wang
2014-07-02 19:50 ` Jens Axboe
2014-07-02 20:36   ` Yuyang (Alex) Wang
2014-07-02 23:38     ` Carl Zwanzig
2014-07-03 17:28       ` Yuyang (Alex) Wang
2014-07-03 17:45         ` David Nellans
2014-07-03 17:52           ` Yuyang (Alex) Wang
2014-07-03 18:12     ` Jeff Moyer
2014-07-03 18:21       ` Hinson, Roger
2014-07-03 18:31         ` Yuyang (Alex) Wang
2014-07-03 18:22       ` Yuyang (Alex) Wang
2014-07-03 18:39         ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox