BFQ I/O Scheduler For Linux Sees Big Scalability Improvement
Following the work on enhancing the scalability of the MQ-Deadline I/O scheduler, Linux storage expert Jens Axboe has applied similar scalability improvements to the BFQ I/O scheduler.
Similar to the scalability work on MQ-Deadline, Jens Axboe has optimized the Budget Fair Queueing (BFQ) I/O scheduler to yield better performance. With a multi-threaded FIO test he went from an NVMe drive having 96% locking contention and 86% system time while delivering 567,860 IOPS to around 30% locking contention, 14.5% system time, and 1,550,918 IOPS. That's a heck of an improvement for those using BFQ with a speedy storage device with the IOPS at 2.73x the original performance.
The BFQ I/O scalability work serializes the request dispatch, bypasses merging when contended, and uses separate insertion lists and locking. Details on this pending BFQ I/O scheduler optimization work via Axboe's Git tree. Not bad for some weekend hacking.
Similar to the scalability work on MQ-Deadline, Jens Axboe has optimized the Budget Fair Queueing (BFQ) I/O scheduler to yield better performance. With a multi-threaded FIO test he went from an NVMe drive having 96% locking contention and 86% system time while delivering 567,860 IOPS to around 30% locking contention, 14.5% system time, and 1,550,918 IOPS. That's a heck of an improvement for those using BFQ with a speedy storage device with the IOPS at 2.73x the original performance.
The BFQ I/O scalability work serializes the request dispatch, bypasses merging when contended, and uses separate insertion lists and locking. Details on this pending BFQ I/O scheduler optimization work via Axboe's Git tree. Not bad for some weekend hacking.
27 Comments