Re: [PATCH v3] blk-throtl: Introduce sync and async queues for blk-throtl

From: Michal Koutný
Date: Thu Jan 05 2023 - 11:19:11 EST


Hello Jinke.

On Mon, Dec 26, 2022 at 09:05:05PM +0800, Jinke Han <hanjinke.666@xxxxxxxxxxxxx> wrote:
> In our test, fio writes a 100g file in sequential 4k blocksize in
> a container with low bps limit configured (wbps=10M).
> [...]
> At the same time, the operation of saving a small file by vim will be
> blocked amolst 140s.

Could you please elaborate why is this specific to blk-throtl?

I guess similar problem would arise for devices that are "naturally"
slow.
Then:
a) it must have been solved elsewhere in the block layer (but it's
broken),
b) it should be solved generically in the block layer (thus this is only
a partial solution).

Alternatively, I imagine your problem could be reduced with
corresponding memory limits on IO-constrained cgroups. (The memory limit
would increase cgwb's dirty throttling and consequently leaves more
IO bandwidth for sync IOs.)

Could you describe how the submitted solution compares to memory
limiting?

> This patch splits bio queue into sync and async queues for blk-throtl
> and gives a huge priority to sync write ios.

The "huge priority" corresponds to the THROTL_SYNC_FACTOR, right?
I'm slightly concerned about the introduction of the magical value.
What is the reasoning behind this? (E.g. I'd expect 1:1 could work as
well, while 1:4 suggests this is somehow better (empirically?).)

Thanks,
Michal

Attachment: signature.asc
Description: Digital signature