1. A computer implemented method for controlling resource allocation comprising: determining application specific service level goals for at least one multi-tier application, said at least one multi-tier application hosted across at least one of a first virtual machine operating on a first computer system and a second virtual machine operating on a second computer system, wherein a first layer on said first virtual machine hosts a first tier of said at least one multi-tier application and a second layer on said first virtual machine hosts a second tier of said at least one multi-tier application; measuring at least one service metric associated with said at least one multi-tier application, wherein said at least one service metric is based on a perspective of a client computer interacting with said at least one multi-tier application; comparing said at least one service metric to said application specific service level goals; based on said comparing, determining that said at least one multi-tier application is not meeting a threshold performance service level; determining that said first virtual machine lacks additional resources for allocation to enable full operation of said first and second tier thereon; and modifying a resource allocation associated with said at least one multi-tier application at at least one of said first virtual machine and said second virtual machine, wherein said modifying comprises: prioritizing an operation of either said first tier or said second tier; and based on said prioritizing, allocating resources of said first virtual machine such that a prioritized tier is fully enabled for operation.