  Efficient resource allocation is one of the critical performance challenges
in an Infrastructure as a Service (IaaS) cloud. Virtual machine (VM) placement
and migration decision making methods are integral parts of these resource
allocation mechanisms. We present a novel virtual machine placement algorithm
which takes performance isolation amongst VMs and their continuous resource
usage into account while taking placement decisions. Performance isolation is a
form of resource contention between virtual machines interested in basic low
level hardware resources (CPU, memory, storage, and networks bandwidth).
Resource contention amongst multiple co-hosted neighbouring VMs form the basis
of the presented novel approach. Experiments are conducted to show the various
categories of applications and effect of performance isolation and resource
contention amongst them. A per-VM 3-dimensional Resource Utilization Vector
(RUV) has been continuously calculated and used for placement decisions while
taking conflicting resource interests of VMs into account. Experiments using
the novel placement algorithm: VUPIC, show effective improvements in VM
performance as well as overall resource utilization of the cloud.
