I’m a developer of the BFQ I/O scheduler [1, 2], and this topic is about
the techniques used to guarantee I/O bandwidth to clients, containers,
virtual machines and any other type of entities accessing shared
storage. I’ve been suggested to create this topic by a Google storage
manager, who thinks that my results might be interesting for some of
you guys, or maybe even useful for some company.
I found out that the above techniques entail dramatic throughput
losses: up to 80-90% of the throughput reachable by your storage.
Experts, including people working on these techniques, confirmed this
severe underutilization. So I decided to analyze the problem, and put
my results in a short article:
On the bright side, I also tried to extend BFQ so as to become a
viable solution to this problem. BFQ now seems to reduce the loss to
just 10%. This result is reported in the article too.
If someone has any question, I’ll be happy to answer, if I can