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 kind. 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 http://serverfault.com/questions/576078/vsphere-allocate-100-cpu-to-1-vm-88-efficiency/ 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: http://serverfault.com/questions/380505/vmware-esxi-virtual-machine-configuration-for-hyperthreading 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. -- Alex -- 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 firstname.lastname@example.org. To view this discussion on the web visit https://groups.google.com/d/msgid/qubes-users/8803e766-6a8b-d5bf-342e-3c42550d2232%40gmx.com. For more options, visit https://groups.google.com/d/optout.