Why does file system prefetching work?

  • Authors:
  • Elizabeth Shriver;Christopher Small;Keith A. Smith

  • Affiliations:
  • Information Sciences Research Center, Bell Labs, Lucent Technologies;Information Sciences Research Center, Bell Labs, Lucent Technologies;Harvard University

  • Venue:
  • ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most file systems attempt to predict which disk blocks will be needed in the near future and prefetch them into memory; this technique can improve application throughput as much as 50%. But why? The reasons include that the disk cache comes into play, the device driver amortizes the fixed cost of an I/O operation over a larger amount of data, total disk seek time can be decreased, and that programs can overlap computation and I/O. However, intuition does not tell us the relative benefit of each of these causes, or techniques for increasing the effectiveness of prefetching. To answer these questions, we constructed an analytic performance model for file system reads. The model is based on a 4.4BSD-derived file system, and parameterized by the access patterns of the files, layout of files on disk, and the design characteristics of the file system and of the underlying disk. We then validated the model against several simple workloads; the predictions of our model were typically within 4% of measured values, and differed at most by 9% from measured values. Using the model and experiments, we explain why and when prefetching works, and make proposals for how to tune file system and disk parameters to improve overall system throughput.