CFFQ: I/O scheduler for providing fairness and high performance in SSD devices

Linux kernel has I/O schedulers to efficiently manage I/O requests of applications and reflect them to the storage. In addition, the existing Linux I/O schedulers are optimized to HDDs (Hard Disk Drivers), because computer systems have mainly used HDDs as a secondary storage in the past. However, since they are composed of mechanical parts including disk arm and rotary disks, they suffer from the performance bottleneck caused by disk seek time and rotation time. To mitigate this problem, CFQ scheduler, which is a default Linux I/O scheduler now, manages I/O requests with sorting and merging operation. CFQ scheduler utilizes red-black tree as a per-process request queue to fairly distribute I/O bandwidth to each process. Unfortunately, CFQ scheduler shows low responsiveness in SSDs (Solid State Drives) which are currently prevalent on the market. In SSDs, although noop scheduler outperforms CFQ scheduler in terms of latency due to its simple FIFO management for the request queue, it unfairly distributes I/O bandwidth to processes. For this reason, both the CFQ and noop scheduler are thought as unsuitable for the SSDs. In this paper, we propose a novel Linux I/O scheduler, called CFFQ (Completely Fair FIFO Queueing) scheduler. CFFQ scheduler supports FIFO queue as a request queue for each process and manages it with round-robin scheme. Experimental results show that our scheduler not only guarantees more I/O bandwidth fairness by up to 37.3% compared with noop scheduler, but also improves latency by up to 50.3% compared with CFQ scheduler.

[1]  Philippe Bonnet,et al.  Linux block IO: introducing multi-queue SSD access on multi-core systems , 2013, SYSTOR '13.

[2]  Jongmoo Choi,et al.  Disk schedulers for solid state drivers , 2009, EMSOFT '09.

[3]  Hewlett-Packard,et al.  Workload Dependent Performance Evaluation of the Linux 2 . 6 I / O Schedulers , 2004 .

[4]  Fabio Checconi,et al.  High Throughput Disk Scheduling with Fair Bandwidth Distribution , 2010, IEEE Transactions on Computers.

[5]  Kai Shen,et al.  FlashFQ: A Fair Queueing I/O Scheduler for Flash-Based SSDs , 2013, USENIX Annual Technical Conference.

[6]  Hua Wang,et al.  A novel I/O scheduler for SSD with improved performance and lifetime , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[7]  Paul E. McKenney,et al.  Stochastic fairness queueing , 1990, Proceedings. IEEE INFOCOM '90: Ninth Annual Joint Conference of the IEEE Computer and Communications Societies@m_The Multiple Facets of Integration.

[8]  Kai Shen,et al.  FIOS: a fair, efficient flash I/O scheduler , 2012, FAST.