@inproceedings{c03f195fde3b415889096aae1d8f2192,
title = "Hey, you have given me too many knobs!: Understanding and dealing with over-designed configuration in system software",
abstract = "Configuration problems are not only prevalent, but also severely impair the reliability of today's system software. One fundamental reason is the ever-increasing complexity of configuration, reflected by the large number of configuration parameters ({"}knobs{"}). With hundreds of knobs, configuring system software to ensure high reliability and performance becomes a daunting, error-prone task. This paper makes a first step in understanding a fundamental question of configuration design: {"}do users really need so many knobs?{"} To provide the quantitatively answer, we study the configuration settings of real-world users, including thousands of customers of a commercial storage system (Storage-A), and hundreds of users of two widely-used open-source system software projects. Our study reveals a series of interesting findings to motivate software architects and developers to be more cautious and disciplined in configuration design. Motivated by these findings, we provide a few concrete, practical guidelines which can significantly reduce the configuration space. Take Storage-A as an example, the guidelines can remove 51.9% of its parameters and simplify 19.7% of the remaining ones with little impact on existing users. Also, we study the existing configuration navigation methods in the context of {"}too many knobs{"} to understand their effectiveness in dealing with the over-designed configuration, and to provide practices for building navigation support in system software.",
keywords = "Complexity, Configuration, Difficulty, Error, Navigation, Parameter, Simplification",
author = "Tianyin Xu and Long Jin and Xuepeng Fan and Yuanyuan Zhou and Shankar Pasupathy and Rukma Talwadker",
note = "Publisher Copyright: {\textcopyright} 2015 ACM.; 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 ; Conference date: 30-08-2015 Through 04-09-2015",
year = "2015",
month = aug,
day = "30",
doi = "10.1145/2786805.2786852",
language = "English (US)",
series = "2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 - Proceedings",
publisher = "Association for Computing Machinery",
pages = "307--319",
booktitle = "2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 - Proceedings",
address = "United States",
}