A method of managing user density in a virtual desktop infrastructure, the method comprising: installing , by a computing device, a virtual machine agent (202-2, ...,202-8) on each of a plurality of virtual machines (204-2, .... 204-8) and a hypervisor agent (210-2;210-4) on each of a plurality of hypervisor hosts (212-2; 212-4) hosting said virtual machines (204-2, ...,204-8); configuring , by the computing device, each of the plurality of virtual machine agents (202-2, ...,202-8) to capture virtual machine management data from the virtual machine (204-2, .... 204-8) on which it is installed and each of the hypervisor agents (210-2;210-4) to capture virtual machine management data from the hypervisor host (212-2; 212-4) on which it is installed; analyzing , by the computing device, the captured virtual machine management data to determine a plurality of sets of common applications, wherein each set from the plurality of sets of common applications is common to two or more virtual machines (204-2, .... 204-8) within the plurality of virtual machines (204-2, .... 204-8); creating , by the computing device, a plurality of dedicated virtual desktops and a plurality of session sharable virtual desktops, wherein one of the plurality of sets of common applications is installed on one of the plurality of session sharable virtual desktops and at least one unique application is installed on one of the plurality of dedicated virtual desktops; and determining based on the captured virtual machine management data similarity patterns and compatibility patterns existing between the plurality of hypervisor hosts (212-2; 212-4), the plurality of dedicated virtual desktops, and the plurality of session shareable virtual desktops to place the plurality of dedicated virtual desktops and the plurality of session shareable virtual desktops on the plurality of hypervisor hosts (212-2; 212-4). installing , by a computing device, a virtual machine agent (202-2, ...,202-8) on each of a plurality of virtual machines (204-2, .... 204-8) and a hypervisor agent (210-2;210-4) on each of a plurality of hypervisor hosts (212-2; 212-4) hosting said virtual machines (204-2, ...,204-8); configuring , by the computing device, each of the plurality of virtual machine agents (202-2, ...,202-8) to capture virtual machine management data from the virtual machine (204-2, .... 204-8) on which it is installed and each of the hypervisor agents (210-2;210-4) to capture virtual machine management data from the hypervisor host (212-2; 212-4) on which it is installed; analyzing , by the computing device, the captured virtual machine management data to determine a plurality of sets of common applications, wherein each set from the plurality of sets of common applications is common to two or more virtual machines (204-2, .... 204-8) within the plurality of virtual machines (204-2, .... 204-8); creating , by the computing device, a plurality of dedicated virtual desktops and a plurality of session sharable virtual desktops, wherein one of the plurality of sets of common applications is installed on one of the plurality of session sharable virtual desktops and at least one unique application is installed on one of the plurality of dedicated virtual desktops; and determining based on the captured virtual machine management data similarity patterns and compatibility patterns existing between the plurality of hypervisor hosts (212-2; 212-4), the plurality of dedicated virtual desktops, and the plurality of session shareable virtual desktops to place the plurality of dedicated virtual desktops and the plurality of session shareable virtual desktops on the plurality of hypervisor hosts (212-2; 212-4). <EOS>