bfq · shipping · also BFQ, Budget Fair Queuing

Budget Fair Queueing (BFQ)

Budget Fair Queueing is a Linux I/O scheduler that uses weighted queues and sector budgets to distribute storage service.

Related Observatory article: Budget Fair Queueing (BFQ) on hesela.com

Mechanism: BFQ budgets count sectors rather than a fixed service time. Weights apportion bandwidth within an I/O-priority class, while classes have distinct priorities. It can switch to time-based sharing to limit throughput loss. [1]

With low_latency enabled, selected interactive and soft-real-time workloads receive raised weights. Configured weights alone therefore do not predict the observed bandwidth ratio. Idling and strict service settings also change the throughput and latency trade-off. [1]

Concurrency: In v6.16, strict_guarantees stops ordinary dispatch while tot_rq_in_driver is nonzero. Requests on the separate dispatch list are handled before that check; it is not a universal queue-depth-one invariant. The reduced parallelism can lower throughput. [2]

Relations

related
I/O scheduler, Linux blk-mq, Inter-flow interference, Slowdown fairness

Citations

  1. Linux 6.16: BFQ, budgets, priority classes and low_latency (accessed 2026-10-21)
  2. Linux v6.16: bfq-iosched.c, __bfq_dispatch_request and bfq_insert_request (accessed 2026-10-21)

Further reading

  1. Hesela: Sharing an SSD: who pays for the slowdown? (accessed 2026-10-21)

JSON: /data/terms/bfq.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Budget Fair Queueing (BFQ). Hesela. 2026-10-21. https://hesela.dev/terms/bfq/