All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2 RFC] bfq: Waker logic tweaks for dbench performance
@ 2020-04-09 17:09 Jan Kara
  2020-04-09 17:09 ` [PATCH 1/2] bfq: Fix check detecting whether waker queue should be selected Jan Kara
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Jan Kara @ 2020-04-09 17:09 UTC (permalink / raw)
  To: Paolo Valente; +Cc: linux-block, Andreas Herrmann, Jan Kara

Hello,

I was investigating why dbench performance (even for single dbench client) with
BFQ is significantly worse than it used to be CFQ. The culprit is the idling
logic in BFQ. The dbench workload is very fsync(2) heavy. In practice the time
to complete fsync(2) calls is what determines the overall performance. For
filesystems with a journal such as xfs or ext4 it is common that fsync(2)
involves writing data from the process runningg fsync(2) - dbench in this case
- and then waiting for the journalling machinery to flush out metadata from a
separate process (jbd2 process in ext4 case, worker thread in xfs case).
CFQ's heuristic was able to determine that it isn't worth to idle waiting for
either dbench or jbd2 IO. BFQ's heuristic is not able to determine this and
thus jbd2 process is often blocked waiting for idle timer of dbench queue to
trigger.

The first patch in the series is an obvious bugfix but is not enough to improve
performance. The second patch does improve dbench performance from ~80 MB/s
to ~200 MB/s on my test machine but I'm aware that it is probably way too
aggressive and probably a different solution is needed. So I just wrote that
patch to see the results and spark some discussion :). Any idea how to
improve the waker logic so that dbench performance doesn't drop so
dramatically?

								Honza

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

end of thread, other threads:[~2021-01-13 13:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-09 17:09 [PATCH 0/2 RFC] bfq: Waker logic tweaks for dbench performance Jan Kara
2020-04-09 17:09 ` [PATCH 1/2] bfq: Fix check detecting whether waker queue should be selected Jan Kara
2021-01-10  9:20   ` Paolo Valente
2021-01-13 13:09     ` Jan Kara
2021-01-13 13:11       ` Jan Kara
2020-04-09 17:09 ` [PATCH 2/2] bfq: Allow short_ttime queues to have waker Jan Kara
2021-01-10  9:20   ` Paolo Valente
2021-01-13 13:25     ` Jan Kara
2020-04-17  7:47 ` [PATCH 0/2 RFC] bfq: Waker logic tweaks for dbench performance Paolo Valente
2020-04-17  9:18   ` Jan Kara

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.