Operating System Support for I/O-Intensive Online Servers

Server computer systems are those that provide computing or storage services catering to a potentially large number of simultaneous clients. The ubiquity of computer networks and Internet services underlies the importance of servers in today's digital world. Further, the resurgence of thin-client computing promises to return many existing desktop applications into centrally managed services. Our research on server computer systems is guided by two high-level visions. First, complex systems like those hosting data-intensive services are particular areas of explosive growth. This is the result of the increasing trend that information (or data) rather than computing be the driving force behind new applications. Second, although past work has focused mostly on improving performance and quality-of-service of server system support, future work must additionally emphasize system manageability and dependability.

Data-intensive online services demand high-capacity data input/output (I/O). The complexity of efficient I/O support within the context of server computer systems makes it an interesting problem area. Our research has studied the fundamental tradeoff between I/O prefetching efficiency and its potential cost for the concurrent sequential I/O commonly seen in server environments. Based on an understanding of this tradeoff, we developed a new I/O prefetching technique (called competitive prefetching) which balances efficiency gain and resource waste [EuroSys'07]. Further, this project has uncovered and addressed deficiencies in the management of memory containing prefetched data in server systems [FAST'05]. Our recent work has also started looking into I/O issues (data access tracing in particular) on the virtual machine-based systems [USENIX'07].

Complex systems may perform anomalously due to various implementation problems, such as over-simplifications, mis-handling of special cases, or improper management of system component interactions. Our research investigates new approaches and techniques to examine comprehensively the large space of possible runtime conditions and to characterize performance anomalies in system software. In particular, our work has resulted in the identification of previously unknown I/O performance bugs in the Linux operating system [FAST'05, SIGMETRICS'09]. We also explored the general use of references in I/O performance characterization [SIGMETRICS'09].

An education component of this project is to develop an instruction platform for students to develop/evaluate various I/O system features in the operating systems course. Details of this effort can be found at Vesper: Realistic and simple instructional platform for student OS performance evaluation.

Relevant publications can be found here.

Project Members:

Amal Fahad, University of Rochester
Chuanpeng Li, graduated with Ph.D., now at Bloomberg
Xin Li, University of Rochester
Pin Lu, graduated with M.S., now at Microsoft
Stan Park, University of Rochester
Kai Shen, University of Rochester
Christopher Stewart, graduated with Ph.D., now on the Computer Science faculty at the Ohio State University
Ming Zhong, graduated with Ph.D., now at Google


Kai Shen (kshen@cs.rochester.edu)


This project is supported by the National Science Foundation under Grants No. 0615045 and No. 0448413.


Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.