Finding an efficient configuration for cluster-based multi-tier Internet services is often a difficult task. Moreover, even a good configuration could become obsolete, depending on workload evolution. In this paper, we address both problems by dynamically calculating an optimal configuration for multi-tier Internet services and applying this configuration to the managed application. Our approach is based on two main components. A model of the underlying application, and a controller using this model to find the optimal configuration according current environment and performance objectives. We evaluate the model accuracy and the controller efficiency. Experiments show that our solution improves resource consumption, and may lead to significant energy savings, besides matching the performance objectives even with a dynamic workload. Keywords Multi-tier applications, Cost, Availability, Performance, SLA, Modeling, Capacity planning Categories and Subject Descriptors C.2.4 [Distributed Sy...