Ever wonder how much overhead do Linux I/O schedulers introduce? Should you be using them with modern fast NVMe storage devices? How do they help to control performance isolation or interference between multiple workloads?
Zebin Ren with Krijn Doekemeijer and Nick Tehrany investigate which Linux I/O scheduler you should be using with modern, fast NVMe storage devices. This research paper is accepted at the 15th ACM/SPEC International Conference on Performance Engineering (ICPE), London, UK, May 2024. https://icpe2024.spec.org/accepted-papers/.
Title: BFQ, Multiqueue-Deadline, or Kyber? Performance Characterization of Linux Storage Schedulers in the NVMe Era
Abstract: Flash SSDs have become the de-facto choice to deliver high I/O performance to modern data-intensive workloads. These workloads are often deployed in the cloud, where multiple tenants share access to flash-based SSDs. Cloud providers use various techniques, including I/O schedulers available in the Linux kernel, such as BFQ, Multiqueue-Deadline (MQ-Deadline), and Kyber, to ensure certain performance qualities (i.e., service-level agreements, SLAs). Though designed for fast NVMe SSDs, there has not been a systematic study of these schedulers for modern, high-performance SSDs with their unique challenges. In this paper. we systematically characterize the performance, overheads, and scalability properties of Linux storage schedulers on NVMe SSDs with millions of I/O operations/s. We report 23 observations and 5 key findings that indicate that (i) CPU performance is the primary bottleneck with the Linux storage stack with high-performance NVMe SSDs; (ii) Linux I/O schedulers can introduce 63.4% performance overheads with NVMe SSDs; (iii) Kyber and BFQ can deliver 99.3% lower P99 latency than None or MQ-Deadline schedulers in the presence of multiple interfering workloads. We open-source the scripts and datasets of this work at: https://zenodo.org/records/10599514.
https://github.com/stonet-research/icpe24_io_scheduler_study_artifact
https://atlarge-research.com/pdfs/2024-io-schedulers.pdf
DOI: https://doi.org/10.1145/3629526.3645053