  Misconfiguration is a major cause of system failures. Prior solutions focus
on detecting invalid settings that are introduced by user mistakes. But another
type of misconfiguration that continues to haunt production services is
specious configuration--settings that are valid but lead to unexpectedly poor
performance in production. Such misconfigurations are subtle, so even careful
administrators may fail to foresee them.
  We propose a tool called Violet to detect such misconfiguration. We realize
the crux of specious configuration is that it causes some slow code path to be
executed, but the bad performance effect cannot always be triggered. Violet
thus takes a novel approach that uses selective symbolic execution to
systematically reason about the performance effect of configuration parameters,
their combination effect, and the relationship with input. Violet outputs a
performance impact model for the automatic detection of poor configuration
settings. We applied Violet on four large systems. To evaluate the
effectiveness of Violet, we collect 17 real-world specious configuration cases.
Violet detects 15 of them. Violet also identifies 9 unknown specious
configurations.
