DescriptionThis presentation is a report on the last improvements on the BFQ I/O scheduler. These improvements benefit virtually any system, from embedded devices, to personal systems, to nodes in a data center.
This first set of changes concerns throughput. In the most complex scenarios for guaranteeing I/O bandwidths, BFQ delivers up to five-time higher throughput than existing solutions. But the same mechanisms that gained BFQ this primacy become a hindrance with some deceptive workloads. These workloads trick BFQ mechanisms into wrongly believing that some I/O flows need to be privileged with respect to other flows, even at the expense of losing throughput dramatically. In contrast, total throughout is the only performance parameter that matters. We took countermeasures to offset this loss of throughput, countermeasures that fully succeed with some
Then, as for I/O control, the combination of several new improvements and fixes let the worst-case start-up time of applications drop by an additional 35%. We show these results not only through graphs, but also through a new demo with a Chromebook.
The last contributions shown in this presentation are about
efficiency. In fact, even the execution overhead of an I/O scheduler may limit maximum throughput with very fast drives. So, to reduce BFQ overhead, we tried to turn some properties of these drives into BFQs advantage: we looked for costly optimizations that are no longer necessary with these drives. We found some, and added controls that automatically turn them off when not needed.
Assistant Professor of CS (University of Modena and Reggio Emilia, Italy)
Paolo Valente is an Assistant Professor of Computer Science at the University of Modena and Reggio Emilia, Italy. Some of his activities focus on scheduling algorithms for transmission links, storage devices, and CPUs. As for transmission links, Paolo is one of the authors of the QFQ packet scheduler, which has been in the Linux kernel until 3.7, after that it has been replaced by QFQ+, a faster variant defined and implemented by Paolo himself. Paolo is also the author of the last version of the BFQ I/O scheduler, which seems to be on the right track to replace the current default I/O scheduler in Linux. Finally, Paolo has also defined and implemented other algorithms, part of which are now in FreeBSD, and has provided new theoretic results concerning multiprocessor scheduling. Paolo has given about thirty talks, as an invited speaker or to present his scientific papers.