1. A computer-implemented method for placement of a plurality of virtual machines, comprising: assigning, to a hardware resource, a plurality of candidate virtual machines selected from the plurality of virtual machines, wherein a candidate virtual machine is a virtual machine that uses performance resources of the hardware resource beyond performance resources available on the hardware resource; generating a user location vector for each candidate virtual machine from the plurality of candidate virtual machines by aggregating a plurality of user location metrics for the candidate virtual machine, the user location vector represents an aggregate of a velocity, and direction of movement for a plurality of users on the candidate virtual machine, wherein aggregating the user location metric includes: identifying the plurality of users of the candidate virtual machine from the plurality of candidate virtual machines based upon a usage of the particular candidate virtual machine, determining a velocity and direction of movement for each user from the plurality of users, and aggregating the velocity and direction of movement for the plurality of users of the candidate virtual machine; ranking, in response to a performance resource demanded by the plurality of candidate virtual machines being at or above a threshold of the performance resource available on the hardware resource, the plurality of candidate virtual machines as a function of an aggregate user location vector for each candidate virtual machine; selecting a subset of the candidate virtual machines for migration based on the ranking; and migrating, responsive to the selecting, the subset of candidate virtual machines to the hardware resource.