Combien de processeurs virtuels ou de cœurs dois-je attribuer à mon système d'exploitation invité? [fermé]


8

Je viens de recevoir une machine hôte mise à niveau et je cherche à appliquer certaines de ces avancées à mes systèmes d'exploitation invités. En particulier, j'avais l'habitude d'avoir un seul processeur, avec 2 cœurs, donc mon OS invité n'en avait que 1/1.

Maintenant, j'ai un seul processeur avec 8 cœurs, donc je suis curieux de savoir ce qui serait recommandé pour mon OS invité maintenant?

  • 1 processeur / 4 cœurs?
  • 2 processeurs / 2 cœurs?
  • 4 processeurs / 1 cœur?

Mon instinct me dit de s'en tenir au nombre de processeurs physiques (ou moins), mais est-ce basé sur la réalité? J'ai passé un bon moment à chercher une réponse à cela, mais peut-être que mon google-karma n'est pas en ma faveur aujourd'hui.


Votre invité utilise-t-il les capacités de traitement dont il dispose actuellement?
OldWolf

Ce lien peut être utile, suggérant que vous faites correspondre votre configuration à la configuration NUMA de l'hôte.
Glenn

Réponses:


4

Dans mes propres tests, avec VMWare Workstation, en utilisant les derniers tests GeekBench 3, 64 bits, sur une machine hôte avec 1 processeur, 2 cœurs (avec HT activé, donc 4 cœurs):

Système hôte:

  • 2866 Score Single Core, 5939 Score Multi Core

Virtualisé:

  • 1 processeur, 1 cœur: 2783 sc, 2705 mc
  • 1 processeur, 2 cœurs: 2758 sc, 4271 mc
  • 1 processeur, 3 cœurs: 2783 sc, 5234 mc
  • 1 processeur, 4 cœurs: 2769 sc, 5793 mc

Donc, au moins dans mes tests, il semble qu'il y ait un avantage à définir votre nombre virtuel de cœurs pour correspondre à vos cœurs physiques. J'ai peut-être tort. J'adorerais discuter.


Excellente recherche! Merci. Pourriez-vous étendre cette recherche pour couvrir certaines des autres options que j'ai soulignées dans le message d'origine? Comme un système virtuel 2/2 et 4/1 (ayant déjà identifié qu'une sortie 1/4 effectue des configurations 1/4)? Voilà la vraie question. Devriez-vous aller 1/4, 2/2 ou 4/1 (en supposant que vous allez avec 4 cœurs virtuels au total). De plus, je dois admettre que je ne comprends pas la différence entre le «score unique» et le «score multicœur» dans chacun de vos exemples. Comment une machine 1cpu / 1core peut-elle obtenir un score multicœur? Idem pour la situation 1cpu / 4core, en sens inverse ....
reidLinden

2

Je ne sais pas si ces informations sont toujours valides, mais dans un passé pas trop lointain, les processeurs invités supplémentaires ne se sont pas développés à peu près aussi bien que les processeurs hôtes. En fait, la meilleure recommandation était de rester avec des processeurs uniques dans vos configurations d'invité, sauf si vous testiez / déboguez spécifiquement un logiciel multithread chez vos invités et nécessitiez un environnement SMP.

Edit: Cette réponse est particulière à la virtualisation des postes de travail, pas à la virtualisation des serveurs.


donc, vous dites 1 processeur, avec un seul cœur?
reidLinden

Oui. La station de travail VMware permet-elle maintenant de définir ces valeurs indépendamment? Je ne l'ai pas utilisé depuis le ver 6, et c'était juste un # de CPU. Si vous envisagez de faire des processeurs multicœurs / multi-processeurs chez vos invités, je doute que la façon dont vous faites évoluer les choses ait beaucoup d'importance, à moins que des considérations de licence (nombre de "sockets" par rapport au nombre de "cœurs") entrent en jeu. Par exemple, XP Home n'autorise que 1 socket, mais jusqu'à 4 cœurs, tandis que XP Pro autorise 2 sockets.
afrazier

oui, je semble avoir la possibilité de choisir "# processeurs" et "# cœurs" indépendamment ... Ma machine hôte a 1 processeur avec 8 cœurs, sur un Windows7 Professional, et mon (principal) guestOS est un serveur Windows 2003. ..
reidLinden

0

Tout au plus, je donne à mon invité OS 2 cœurs. Peu importe que vous fassiez 1 processeur 2 cœurs ou 2 processeurs 1 cœur chacun. Le paramètre du processeur est pour des raisons de compatibilité. Les processeurs / cœurs ne s'adaptent pas si bien pour le système d'exploitation invité en raison de la planification des processus cœur / processeur. 2 cœurs semblent être le point idéal.


Vous voulez éviter d'avoir un processeur et un cœur pour une machine virtuelle, car si une opération que le système d'exploitation hôte ne s'attend pas à bloquer de façon inattendue dans l'hôte, la machine virtuelle entière est bloquée.
David Schwartz

0

Il y a peu de différence à ce stade. Dans certains cas, les licences logicielles peuvent dépendre des cœurs ou des processeurs.

Virtualisé: 1 cpu, 1 coeur: 2783 sc, 2705 mc 1 cpu, 2 cores: 2758 sc, 4271 mc 1 cpu, 3 cores: 2783 sc, 5234 mc 1 cpu, 4 cores: 2769 sc, 5793 mc Donc, au moins dans mes tests, il semble qu'il y ait un avantage à définir votre nombre virtuel de cœurs pour correspondre à vos cœurs physiques. J'ai peut-être tort. J'adorerais discuter.

Ce n'est que dans une référence qui utilise tous les cœurs. La plupart des applications n'évoluent pas les performances de manière linéaire avec le nombre de cœurs, car elles n'utilisent tout simplement pas les cœurs supplémentaires.

Il existe également un certain niveau de surcharge avec l'ajout de cœurs supplémentaires. Pour cela, ajoutez simplement le nombre de cœurs que votre application doit effectuer aux niveaux dont vous avez besoin. Ce n'est pas parce que vous avez 4 cœurs dans votre hôte que chaque machine virtuelle devrait avoir 4 cœurs.

Dans un certain nombre d'environnements que je gère, nous avons deux processeurs 10 cœurs avec un total de 40 threads logiques et mes contrôleurs de domaine n'ont toujours que deux cœurs.


-2

Je suis assez choqué que ces questions fréquemment posées n'aient pas encore reçu de réponse complète. Votre CPU hôte devrait prendre en charge certaines technologies de virtualisation, par exemple Intel VTx. Cela vous permet de "tunneler" toute la puissance du CPU dans votre système d'exploitation invité. Sinon, il y aura une énorme baisse de vitesse due à l'émulation d'un CPU. Si vous avez un processeur avec hyperthreading, vous devriez voir 8 processeurs pour un processeur quad-core dans le gestionnaire de périphériques de votre machine hôte (l'hyperthreading double le nombre de vos cœurs). Dans ce cas, vous pouvez affecter 1 processeur avec 4 cœurs à votre système d'exploitation invité. Tant que vous n'avez pas d'autre processeur physique dans votre système, n'affectez pas plus d'un processeur à votre machine virtuelle. Vous pouvez attribuer plus ou moins de cœurs à votre système d'exploitation invité, selon vos besoins, mais vous ne devriez pas t attribuez une valeur supérieure à vos cœurs hyperthreading. Mais notez que votre hôte a également besoin d'une certaine puissance CPU. Je configure généralement le demi-nombre de mes cœurs hyperthreading et le demi-nombre de ma mémoire, par exemple 8192 Mo lorsque vous avez 16 Go de RAM. Il s'agit généralement d'un bon paramètre, mais pas si vous souhaitez exécuter plusieurs machines virtuelles à la fois.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.