La configuration d'une machine virtuelle avec plus d'un processeur / cœur améliorera-t-elle réellement les performances?

11

Lorsque j'utilise VMware Workstation, je peux configurer la machine virtuelle avec plusieurs cœurs. Je l'utilise en fait sur une machine à double cœur et 4 cœurs logiques. Alors, est-ce que j'améliorerais vraiment les performances VMS en utilisant plus de cœurs sur la VM?

Pete2k
la source
3
Il convient de se rappeler une chose lors du dimensionnement des invités virtuels: si cela avait profité à l'installation sur une vraie machine, cela lui serait bénéfique en tant que machine virtuelle et vice-versa. Et surtout: rien de magique n'arrive aux exigences du système ou des applications simplement parce que vous avez virtualisé quelque chose .
Rob Moir

Réponses:

8

cela dépend de ce que la machine virtuelle exécute, un invité sur une machine avec n nombre de cœurs fonctionnera mieux à n-1 cœurs affectés tant que l'invité est capable d'utiliser efficacement plusieurs processeurs. Malheureusement, la façon la plus simple de déterminer cela est de l'essayer et de voir. Je commence généralement par 2 et m'arrête lorsque je manque de performances. En général, 2 cœurs est l'endroit où je vois le "sweet spot". Peu de combinaisons app / os que j'ai rencontrées évolueront mieux que cela.

Jim B
la source
6

Pour clarifier, vous dites que vous avez un processeur double cœur et que vous avez affecté 4 processeurs virtuels sur la machine virtuelle?

Dans ce cas, non; si vous attribuez plus de vCPU que vous n'en avez de cœurs d'exécution physiques, vous constaterez en fait une légère réduction des performances en raison de la surcharge de partage des 2 cœurs physiques entre 4 cœurs virtuels (plus tout ce qui s'exécute sur l'hôte physique).

Vous verrez les meilleures performances de la machine virtuelle en lui affectant 2 vCPU.

Shane Madden
la source
Pas nécessairement - vous ne verrez vraiment de meilleures performances que si les applications exécutées sur la machine virtuelle sont en mesure de tirer parti des systèmes multicœurs. Malheureusement, même si c'est 2011, de nombreuses applications ne le font pas.
EEAA
@ErikA Fair point - application mise à part, je dis simplement qu'avec seulement 2 cœurs physiques, 2 vCPU sur une seule VM est toujours mieux que 4 vCPU.
Shane Madden
oui, 100% d'accord sur ce point.
EEAA
5

Nous avons expérimenté il y a un certain temps ( voir ma question il y a un an ) avec l'attribution de vCPU à partir de cœurs physiques par rapport à des cœurs logiques (threads) dans des processeurs quadricœurs avec hyperthreading (8 vCPU attribuables semblaient être disponibles). Comme les réponses que j'ai reçues à l'époque suggéraient - et notre expérience s'est confirmée - vous devriez allouer le nombre minimum de cœurs que vous pouvez à chaque invité pour lui permettre de fonctionner.

Lors de l'attribution de plus de vCPU que de cœurs physiques disponibles sur l'hôte, si les invités étaient soumis à une hyperthreading de charge simultanée, il n'était pas toujours assez rapide de changer le contexte du processeur entre les threads pour simuler efficacement un autre processeur. Cela peut entraîner des choses très désagréables pour tous les invités, y compris des blocages et des délais d'attente qui peuvent nécessiter un redémarrage, fsck et pire encore sur la pile. Même si ce genre de choses ne se produit pas, les performances seront souvent plus lentes pour les invités plutôt que plus rapides.

Comme le disait @Chris S dans son commentaire à l'époque, "allouez toujours le moins possible et vous éviterez de gros maux de tête".

nedm
la source