En tant que concepteur de système d'exploitation, je suis tout à fait d'accord avec le résultat des mesures. La quantité de conneries produites ailleurs sur le sujet est incroyable.
Voir le nombre de cœurs logiques comme le nombre de threads / processus parallèles pouvant être exécutés par le matériel. Cela est réalisé en dupliquant, par exemple, les registres et les pointeurs d’instructions d’un cœur de CPU. Le cœur de la CPU lui-même décide maintenant quel thread (pointeur d'instruction) utiliser. Il décidera d'utiliser l'autre thread car les instructions du thread actuel ne sont pas disponibles dans le cache et doivent être extraites, par exemple, de la mémoire ou du cache L3. Ce mécanisme créera une amélioration potentielle de 10% à 30% en instructions / secondes ou en performances du processeur.
Si vous exécutez une seule application avec un seul thread, vous ne pourrez pas profiter de cet avantage, mais si vous exécutez deux applications très chargées, par exemple sur un ancien Pentium HT, vous pourrez en tirer parti. Il en va de même pour les applications qui ont plusieurs threads. Mon système Linux a 200 threads, de sorte que certains avantages liés à la charge réelle sont toujours présents. Toutes ces remarques s'appliquent sans virtualisation.
Virtualbox limite uniquement le nombre de threads pouvant être exécutés en parallèle pour chaque machine virtuelle, mais le planificateur de processus hôte modifie le ou les processeurs logiques et donc le ou les processeurs physiques sur lesquels les processus de la VM s'exécutent de manière dynamique. Si vous exécutez des applications à forte charge sur une machine virtuelle, les cœurs logiques supplémentaires vous procureront le même avantage, à savoir 10% à 30%. La charge peut être une seule application multithread ou un ensemble d’applications différentes.
Sur les systèmes modernes avec VT-x ou AMD-V, il n’existe aucune pénalité en termes de performances pour limiter le nombre de cœurs logiques au maximum, puisqu’il n’existe pas non plus de pénalité en termes de performances pour l’exécution simultanée de plusieurs machines virtuelles. Votre limite étant la performance de votre puce de processeur, vous ne pouvez pas restituer des vidéos sur 3 ordinateurs virtuels en même temps sans ralentir chaque ordinateur virtuel, car ils doivent partager le même processeur physique.
Votre système hôte peut devenir irresponsable si vous restituez une vidéo sur une machine virtuelle avec tous les cœurs logiques présents, mais vous auriez presque le même problème si vous exécutiez cette application de rendu sur votre hôte. Au moins dans VM, vous avez le choix et vous pouvez le résoudre en limitant la charge maximale du processeur à 80% -90% ou en réduisant le nombre de cœurs pour cette raison.