Systems software that tunes and reconfigures itself is both feasible and increasingly necessary. The necessity of self-tuning systems arises from the increased complexity of systems software combined with the broader audience for such systems. We demonstrate the feasibility of self-tuning systems by constructing one based on an architecture which separates the tasks of defining expectations, measuring actual performance, analyzing measurements in comparison with expectations, and performing actions in response to analysis which can range from gathering more data to reconfiguring major components of the system. This separation of responsibilities allows systems components to concentrate on performing well within narrower bands of operation, leaving the analysis agent to make more global and longer term decisions regarding the best operating parameters and component implementations to use.
展开▼