Background use of idle resource capacity

  • Authors:
  • Joseph D. Touch;Lars Rene Eggert

  • Affiliations:
  • -;-

  • Venue:
  • Background use of idle resource capacity
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Idletime scheduling is an operating system mechanism for using idle resource capacity in the background without slowing down concurrent foreground use. Executing less important tasks using background capacity increases system efficiency and user-perceived performance of foreground tasks. Idletime service benefits caching, prefetching, system optimizations, and improves application-level services such as crop. Many operating systems fail to support transparent background capacity use. They often share resource capacity fairly, which can reduce foreground performance by 50% or more. An experimental evaluation of application- and kernel-level techniques for background service shows that although they can be effective at establishing different levels of service, such techniques are limited to specific applications, resources, and workloads. They also fail to utilize significant amounts of available idle capacity, require widespread modifications to systems and applications, and can fail to isolate foreground performance sufficiently in the presence of concurrent background use. The main contribution of this work is the idletime scheduler, a generic, kernel-level mechanism that addresses these limitations. It partially relaxes the work conservation principle during preemption intervals. Preemption interval length controls the behavior of the idletime scheduler: short intervals aggressively utilize idle capacity; long intervals reduce the impact on foreground performance. Tuning the preemption interval length adapts the mechanism to applications, resources, and workloads with performance characteristics that vary by orders of magnitude. Unlike existing approaches to establish different service levels, idletime scheduling based on preemption intervals requires only localized modifications to a limited number of system schedulers. Avoiding widespread system and API changes enables execution of existing applications and services in the background, avoids incompatibilities due to changed APIs or service semantics, and aids deployment. In experiments, the FreeBSD implementation for idletime network scheduling maintains over 90% of foreground TCP throughput, while allowing concurrent, high-rate UDP background flows to consume up to 80% link capacity. A disk scheduler implementation maintains 80% of foreground read performance, while enabling concurrent background operations to reach 70% throughput. A quantitative analysis of idletime scheduling predicts the measured performances with an error below 15%. During all experiments, the idletime scheduler successfully limits the impact of background use on foreground performance.