Reputation: 1469
in case of btt results, i am most familiar with
i need help comparing latencies reported by FIO with Btt tool. in FIO results there are
i did read a few articles on FIO result but its still not crystal clear to me what does slat,clat and lat means?
can FIO result give insights if Disk latency is higher or request queuing latency is higher?
is "Slat" or "Clat" or "lat" reported in FIO, directly comparable with Q2D, C2D or Q2C ?
may be these two tools are not directly comparable, in this case can you explain why?
thanks
Upvotes: 1
Views: 1160
Reputation: 7164
This depends massively on the ioengine in use and whether you are submitting the I/O using direct=1
. Assuming --ioengine=libaio --direct=1
:
You need an asynchronous ioengine because synchronous ioengines block from submission until the I/O is complete (see the slat section of http://fio.readthedocs.io/en/latest/fio_doc.html#interpreting-the-output ) whereas asynchronous ioengines can submit separately from receiving notification that the I/O is complete. You need the direct=1
because without it your I/O will just go into the Linux page cache and may not even be asynchronous (even though the ioengine is asynchronous!) - see the libaio section of http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-ioengine for details.
Also bear in mind you don't know what the block layer will do to the I/O after fio submits it. In certain cases it may choose to merge I/Os together (e.g. I/Os are contiguous and arrive close enough together) or split them apart (e.g. if they are too big for the device) destroying any one-to-one correspondence between fio values and btt values.
The fio numbers would likely be larger than those of btt because fio is operating at a higher level (userspace) so the data has further to travel.
Upvotes: 1