A Synthetic Driver for File System Simulations

M. Satyanarayanan


A driver is a software module that mimics an actual usage environment by generating a stream of requests for use in simulations or in stress testing of an implemented system. This paper describes the design of a computationally efficient driver for use in performance evaluation of file systems. Based on observations of a timesharing system in a research environment, it is shown that files can be naturally classified into three equivalence classes: System files, Temporary files, and User files. The usage patterns of each of these classes is shown to be radically different, and a separate locality model is developed for each class. The driver is parameterized, and actual values for these parameters are derived from the experimental observations. Parameters representative of other environments may be used with the driver to extend its domain of applicability. Insights from the experimental data presented here may also be of use in other applications such as capacity planning and file system design.