BFQ idling causes reduced IOPS throughput on non-rotational disks.
Since disk head seeking is not applicable to SSDs, it doesn't really
help performance by anticipating future near-by IO requests.
Idling due to anticipation of future near-by IO requests and wait on
completion of submitted requests, will also effect the other bfq-queues
by causing delay in their scheduling and there by effecting some time
bounded applications.
By turning off idling (and switching to IOPS mode), we allow other
processes(bfq-queues) to dispatch IO requests down to the driver and
so increase IO throughput.
Following FIO benchmark results were taken on a local SSD run:
RandomReads:
Idling iops avg-lat(us) stddev bw
----------------------------------------------------
On 4136 1189.07 17221.65 16.9MB/s
Off 7246 670.11 1054.76 29.7MB/s
fio --name=temp --size=5G --time_based --ioengine=sync \
--randrepeat=0 --direct=1 --invalidate=1 --verify=0 \
--verify_fatal=0 --rw=randread --blocksize=4k \
--group_reporting=1 --directory=/data --runtime=10 \
--iodepth=64 --numjobs=5
RandomWrites:
Idling iops avg-lat(us) stddev bw
---------------------------------------------------
On 1368 3631.38 28234.55 5.47MB/s
Off 4746 1024.61 12184.00 19.4MB/s
fio --name=temp --size=5G --time_based --ioengine=sync \
--randrepeat=0 --direct=1 --invalidate=1 --verify=0 \
--verify_fatal=0 --rw=randwrite --blocksize=4k \
--group_reporting=1 --directory=/data --runtime=10 \
--iodepth=64 --numjobs=5
Change-Id: I9e55eee03917a1ab07fbd3f04635ca1a6541b860
Signed-off-by: Pradeep P V K <ppvk@codeaurora.org>