diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 200a72ff219..cf5c6d6c762 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -1312,7 +1312,12 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe if (guestOsTypeName.toLowerCase().contains("windows")) { vmr.VCPUsMax = (long)vmSpec.getCpus(); } else { - vmr.VCPUsMax = 32L; + // XenServer has a documented limit of 16 vcpus per vm + vmr.VCPUsMax = 2L * vmSpec.getCpus(); + if (vmr.VCPUsMax > 16) + { + vmr.VCPUsMax = 16L; + } } vmr.VCPUsAtStartup = (long)vmSpec.getCpus();