1 0[$] Measuring (and fixing) I/O-controller throughput loss null/LWN/0000763603 70
2 i [Kernel] Aug 29, 2018 21:20 UTC (Wed) (corbet)
4 i Many services, from web hosting and video streaming to cloud
5 i storage, need to move data to and from storage. They also
6 i often require that each per-client I/O flow be guaranteed a
7 i non-zero amount of bandwidth and a bounded latency. An
8 i expensive way to provide these guarantees is to over-provision
9 i storage resources, keeping each resource underutilized, and
10 i thus have plenty of bandwidth available for the few I/O flows
11 i dispatched to each medium. Alternatively one can use an I/O
12 i controller. Linux provides two mechanisms designed to throttle
13 i some I/O streams to allow others to meet their bandwidth and
14 i latency requirements. These mechanisms work, but they come at
15 i a cost: a loss of as much as 80% of total available I/O
16 i bandwidth. I have run some tests to demonstrate this problem;
17 i some upcoming improvements to the [1]bfq I/O scheduler promise
18 i to improve the situation considerably.
22 i [1] https://lwn.net/Articles/601799/