1. A method for providing a resource allocation policy, comprising: constructing a queuing model for each application; defining a utility function for each application and for each transaction type of each application, wherein the transaction type is associated with a type of transaction performed by a corresponding application, wherein the transaction type comprises at least one of: a blogging transaction, a profiling transaction, a browsing transaction, a logging-in transaction, a searching transaction, a buying transaction, and a selling transaction; defining an overall utility in a system in accordance with the queuing model for each application, the utility function for each application and for each transaction type of each application; performing an optimization to identify an optimal configuration that maximizes the overall utility for a given workload; and determining an adaptation policy for configuring the system in accordance with the optimal configuration.