One-Pagers‎ > ‎

OP7: In Search of the Elusive Performance Bug

As a brand new Chief Scientist at Google, you are put in charge of designing a system that finds and diagnoses performance bugs in Apache httpd that are related to input. In other words, you know a priori that Larry and Sergey care solely about performance bugs that are deterministically triggered by some property of the input. Your approach is to first build automatically a profile of Apache's sensitivity to various attributes of the input (e.g., how does response time vary as the number of concurrent connections increases) and use this profile to identify anomalies that will point you to the bugs. You set out to obtain such a profile by enumerating all possible inputs and measuring how long Apache takes to respond to each request; by the time you retire 40 years later, you realize that you have explored only a minute fraction of the input space and still don't have a good performance profile.

Propose a way in which you can automatically identify such performance anomalies more efficiently than by fuzzing your way to a performance profile. Some input properties that might be of interest include size, type of request, payload content, etc. The ultimate goal is to automatically find and diagnose performance bugs before they manifest in production.  If you want, you can assume you already have some sort of performance test suite. 

Since the OP is short, you need to focus on a key problem you want to solve − crisply describe your insight and dive into sufficient depth to convince the reader that this is a good idea and it will work. Ideally you should support your proposed idea with practical and/or theoretical arguments.