CitrixDesktopWindows Technologies

Increase the number of vCPUs/Cores for Windows Desktop VM in XenDesktop


You want to setup a XenDesktop environment hosting VMs with Windows Desktop OS for running graphical rich/intense applications. You are running XenServer and Windows 7.  You want to equip the Windows 7 VMs with 4 or more vCPUs to support the high end graphical loads.


By default Windows desktop operating systems supports only two sockets for processors.  That means, in physical you can only have a maximum of two CPUs and this is applicable for virtual environments as well.  To overcome this limit in physical systems, you can opt for processors with multiple cores inside.  In virtual environments, you need to configure your Windows desktop VMs to support cores per processor. In below solution, you’ll learn how to configure multiple cores per vCPU per VM in XenServer environment.

Below is the screenshot of a XenDesktop VM running Windows 7 utilizing only two processors even when the VM is assigned with 4 vCPUs.



The XenServer Advanced, Enterprise, and Platinum editions include a feature that enables you to specify the number of cores per virtual CPU in a VM. By setting the cores-per-socket parameter, it is possible to present a VM with a certain number of cores.

  • Fetch the Windows Desktop VM identifier that you would like to have support for Cores per vCPU feature. You can find the Universally Unique Identifier (UUID) of the VM using below command on XenServer:
  • xe vm-list name-label=<Name of the VM>
  • Set the cores-per-socket parameter for the selected VM
    • xe vm-param-set platform:cores-per-socket=’X’ uuid=<VM UUID>
    • xe vm-param-set platform:cores-per-socket=’2’ uuid=<VM UUID> (each vCPU will become a dual core processor, if you set it to 4, then each vCPU will become the quad core processor)
  • Set the number of vCPUs for the VM.
    • xe vm-param-set VCPUs-at-startup=<Number of VCPUs> uuid=<VM-UUID>
  • Set the maximum number of Cores a VM can have.
    • xe vm-param-set VCPUs-max=<Maximum number of cores> uuid=<VM-UUID> (if you have set dual for core-per-socket limit and have 2 vCPU in above steps, then you can specify the maximum cores to 4 for this VM)
  • Once you update the VM with above settings, you’ll start to see VM utilizing all the 4 cores as the processors.
  • image




    Leave a Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.