You can start by setting vcpus in the guest.
vpus = <number of virtual cpu cores>
You could also consider pinning some vcpus to the guest.
vcpu-set domain-id vcpu-count
Enables the vcpu-count virtual CPUs for the domain in question. Like mem-set, this command can only allocate up to the maximum virtual CPU count configured at boot for the domain.
If the vcpu-count is smaller than the current number of active VCPUs, the highest number VCPUs will be hotplug removed. This may be important for pinning purposes.
Attempting to set the VCPUs to a number larger than the initially configured VCPU count is an error. Trying to set VCPUs to < 1 will be quietly ignored.
Some guests may need to actually bring the newly added CPU online after vcpu-set, go to SEE ALSO section for information.
Lists VCPU information for a specific domain. If no domain is specified, VCPU information for all domains will be provided.
vcpu-pin domain-id vcpu cpus
Pins the VCPU to only run on the specific CPUs. The keyword all can be used to apply the cpus list to all VCPUs in the domain.
Normally VCPUs can float between available CPUs whenever Xen deems a different run state is appropriate. Pinning can be used to restrict this, by ensuring certain VCPUs can only run on certain physical CPUs.
Finally there has been several articles on the Xen blog recently regarding scheduling, NUMA, and cpupools