Re: rate option doesnt work with libaio engine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 09 2009, Radha Ramachandran wrote:
> Hi,
> The rate option currently doesnt work when used with libaio engine.
> The math currently, calculates the time t2 (when the I/O completed) -
> t1 (when the io_u unit was created) as the time it takes for the I/O
> and the bandwidth for the rate calculation is calculated from that.
> This math will work correctly for sync engine as there is only one io
> in progress at a time, but for libaio engine, when there are multiple
> I/Os queued, the same time (as in from t1 to t2) could be attributed
> to other I/Os as well so the actual bandwidth is actually higher.
> I have a patch, but this is more brute force where I take the total
> bytes read/written divided by the time since I/Os started to calculate
> the bandwidth and decide on the time that needs to be spent sleeping
> (if any).This is a little more heavy weight than the previous math. I
> think there are probably simpler/cleaner solutions than this but this
> is the current patch I have for it.

Good analysis, yeah it definitely is broken currently, it basically
turns out to be rate*iodepth. Which is broken, of course. I have applied
your patch in lieu of a better idea. Don't worry about the bit of extra
math. I try to keep fio lean (and it is), the biggest problem is usually
the huge amounts of gettimeofday() calls when you do high iops counts.

-- 
Jens Axboe

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

[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux