Saturday, June 4, 2011

Block I/O Scheduler Performance

Introduction

The aim of the project is to characterise the performance of the different block I/O schedulers available in Linux 2.6, under various workloads. We're particularly interested in the interaction with RAID. The goal is to both improve performance in the general case, and to produce documentation and guidelines for choosing and tuning a scheduler for a particular workload.

The Schedulers

The I/O schedulers available in Linux 2.6 are:
  • noop
  • deadline
  • anticipatory
  • Complete Fair Queuing (CFQ)
There is a description of these in LinuxIOSchedulers
Additionally, we have implemented two new schedulers:

Tools

The tools we're using for performance testing include:

Results

IOScheduling/MicroResults --- fio microbenchmarks
IOScheduling/Comparisons --- Selected comparisons of throughput and latency with the different schedulers
Aaron's honours thesis describing the work in detail is now up at http://www.ertos.nicta.com.au/publications/#ug

Misc

IOScheduling/Talks --- Talks about this work
IOScheduling/ToDo --- things that need to be done
IOScheduling/TestHardware --- Notes on the disk array we're using for testing
IOScheduling/Ideas --- Possibilities for future work

http://www.gelato.unsw.edu.au/IA64wiki/IOScheduling