Utility-based Placement of Dynamic Web Applications with Fairness Goals David Carrera Barcelona Supercomputing Center (BSC) Technical University of Catalonia (UPC) Barcelona, Spain david.carrera@bsc.es Malgorzata Steinder and Ian Whalley IBM T.J. Watson Research Center Hawthorne, NY 10532 steinder@us.ibm.com inw@us.ibm.com Jordi Torres and Eduard Ayguad´ e Barcelona Supercomputing Center (BSC) Barcelona, Spain jordi.torres@bsc.es eduard.ayguade@bsc.es Abstract—We study the problem of dynamic resource allo- cation to clustered Web applications. We extend application server middleware with the ability to automatically decide the size of application clusters and their placement on physical machines. Unlike existing solutions, which focus on maximizing resource utilization and may unfairly treat some applications, the approach introduced in this paper considers the satisfaction of each application with a particular resource allocation and attempts to at least equally satisfy all applications. We model satisfaction using utility functions, mapping CPU resource al- location to the performance of an application relative to its objective. The demonstrated online placement technique aims at equalizing the utility value across all applications while also satisfying operational constraints, preventing the over-allocation of memory, and minimizing the number of placement changes. We have implemented our technique in a leading commercial middleware product. Using this real-life testbed and a simulation we demonstrate the benefit of the utility-driven technique as compared to other state-of-the-art techniques. I. I NTRODUCTION Modern-day data centers can host a large number of clustered web applications and comprise a large number of heterogeneous machines. To manage application performance, the data centers use admission control, flow control, load balancing, and application placement mechanisms, which are controlled using a variety of policies. Due to the increasing size and heterogeneity of datacenters, customers demand that these policies be fine grained, automatic, and dynamic. To fully automate performance management for such complex environments several challenging issues must be solved, which include understanding and modeling workload characteristics with respect to resource usage, workload forecasting, perfor- mance modeling, optimizing resource allocation, controlling the overhead of management actions, and observing opera- tional policies that are not easily captured within a single optimization objective. This paper studies the problem of dynamic application placement to fairly maximize application performance. We study this problem in the context of a larger system that achieves fully automatic management of web application per- formance by combining dynamic application placement with flow control, and load balancing. The system leverages properties of modern application server middleware [1] that provides transparent application replication via clustering and request routing, session and transaction state management, and application server quiesce mechanisms. Thanks of the existence of these services and their resilience to dynamic configuration changes, we can concentrate on the problem on dynamic replica placement without having to explicitly address these critical issues. The system also takes advantage of recent advances in fields of resource usage profiling for web applications [2] and perfor- mance modeling and overload protection [3]. The application placement component is an online controller that periodically adjusts application placement based on appli- cation resource requirements while trying to maximize certain objective functions and observe some operational policies. Prior approaches to the problem [4], [5], [6], [7], including our prior research on this topic [8] express resource requirements directly, in terms of actual capacity requirement, and attempt to maximize the sum of satisfied demand across all applications. As we show in this paper, such problem formulation leads to unfair treatment of some applications, and in some cases to application starvation. The technique proposed in this paper expresses resource requirement in the form of a utility func- tion which encodes application satisfaction from a particular allocation. The utility function is derived based on observed workload intensity, resource usage profile, and performance objective. The optimization objective is to maximize the minimum utility value among all applications. This results in resource allocation that provides fair treatment to applications but requires both more involved interactions among system components and more involved optimization techniques. The primary contribution of this paper is an online place- ment technique which achieves fair resource allocation with respect to non-linear performance-based utility functions. We have implemented the proposed approach on top of a leading middleware platform. Using the implemented system as well as a randomized simulation study, we show the benefits of our approach compared to prior techniques. This paper is structured as follows. In Section II we present the architecture of our resource management system. Sec-