On 12/31/2016 03:59 PM, Jarle Thorsen wrote:
> I'm abut to move my Qubes OS to a new machine with 32 cpu cores. When
> I run Windows on bare metal a program like 7-zip have no problem
> saturating almost 100% of all 32 cores.
> To let a program like 7-zip do the same thing in a Qubes OS HVM,will
> I have to give the HVM close to 32 vcpus, or should I just give it
> the (recommended?) 2 vcpus and XEN will do the job of distributing
> the load?
It's generally better to leave the minimum vcpu you expect your machine
needs, and fiddle by increments of 1 to find the sweet spot.

To answer your actual question, you will not be able to let a program
fill all your cores to 100% when using a virtualization solution of any

In general, an hypervisor that is told to give 20 cores out of 32 to a
VM will try its best to give them all together at the same time, to
actually emulate the parallel cpu situation the administrator asked for.
This will lead to the hypervisor chasing this 20-free-cores moments
while juggling the whole CPU to other VMs. This leads to situations like
the one described in

So, still speaking in general, you should leave the minimum VCPU number
you think you'll need and let the hypervisor work its magic. More advice
in this direction can be found here:

Yet that's not the end of the story; your specific CPU and/or memory
configuration may actually favor some apparently weird combos, like you
may get better performance with 7 VCPU assigned to your Windows machine
than with any other setting - that's for the experimental part.

Back to theory, to complete the landscape, if your CPU has 32 cores you
can technically assign more than that to any VM; you may have a
situation where there are ~100 vcpu assigned to the running VMs, even if
you have 32 cores only. The hypervisor will just have more work to do,
and depending on the hypervisor it will either simulate the missing
cores (by suspending some vcpus earlier than others for the same VM) or
just ignore the overflowing count. If you assign a big number of VCPUs
to your VMs, so as to overbook the actual number of cores, but still
less than the total number for each VM, you will just have them executed
sequentially (and, depending on the particular configuration, you may
waste a lot of useful CPU resources).

Last but not least do remember that hyperthreading is not full blown
multi-cores, and multi-core is not full-blown multi-processor: your
mileage will vary accordingly.


You received this message because you are subscribed to the Google Groups 
"qubes-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-users+unsubscr...@googlegroups.com.
To post to this group, send email to qubes-users@googlegroups.com.
To view this discussion on the web visit 
For more options, visit https://groups.google.com/d/optout.

Reply via email to