The Effect of Deceptive Idleness on Disk Schedulers
Disk schedulers in operating systems are generally work-conserving; they schedule a request immediately after the previous request has finished. Such schedulers need multiple outstanding requests to make good decisions. Unfortunately, many applications issue synchronous, almost-continuous streams of read requests. This forces the scheduler into making decisions too early, falsely assuming that the process has become momentarily idle. This phenomenon of deceptive idleness causes significant degradation in performance and quality of service objectives on current systems. We solve deceptive idleness by designing and implementing a transparent, non-work-conserving scheduling framework for various scheduling policies. We evaluate this solution on micro benchmarks and real workloads, and observe large benefits. The Apache web server delivers 56% and 16% more throughput for two configurations. The Andrew Benchmark runs faster by 8% (54% for the read-intensive phase). Variants of the TPC-B database benchmark exhibit improvements between 4% and 60%. Proportional-share schedulers become empowered to efficiently deliver application-desired proportions.