Le titre dit à peu près tout. Je me demande simplement si cela fait une différence dans la façon dont les machines virtuelles traiteront les choses et si une méthode est préférable à une autre.
Le titre dit à peu près tout. Je me demande simplement si cela fait une différence dans la façon dont les machines virtuelles traiteront les choses et si une méthode est préférable à une autre.
Réponses:
Non, votre machine virtuelle doit effectuer les mêmes et utilisera les mêmes ressources sur l'hôte. C'est juste un choix de conception qui a été principalement ajouté pour ajouter une certaine flexibilité là où votre système d'exploitation ou votre logiciel peut avoir des exigences de licence par CPU.
Chaque socket / core représentera un core physique sur l'hôte. N'oubliez pas que plus de cœurs ne sont pas automatiquement une bonne chose en raison des exigences de planification.
L'objectif principal de l'option cœurs / socket est de fournir une flexibilité avec les logiciels qui peuvent avoir des exigences d'exécution ou de licence en fonction du nombre de sockets ou de cœurs CPU "physiques".
Bien qu'il n'y ait pas de différence de performance entre plusieurs cœurs sur une prise par rapport à une combinaison de plusieurs prises, il EST une légère différence de fonctionnement si vous activez la fonction ou besoin d' ajout à chaud CPU de la machine virtuelle.
Avec la fonction d'ajout à chaud de CPU VMware, vous pouvez ajouter un socket à une machine virtuelle en cours d'exécution, mais pas de cœurs supplémentaires . Aussi étrange que cela puisse paraître, c'est quelque chose que je rencontre dans la production au travail, et a influencé la façon dont je configure les nouvelles machines virtuelles.
D'une manière générale, cela ne fera que peu ou pas de différence de performance.
Un système d'exploitation suffisamment complexe peut modifier ses heuristiques de planification (en conservant par exemple des threads étroitement liés sur les cœurs dans le même package, ce qui, avec certaines conceptions de puce, peut augmenter l'efficacité de l'utilisation du cache partagé entre les cœurs) en fonction de la disposition des sockets (remplies) et noyaux. Dans une configuration virtualisée, toute différence est susceptible d'être insignifiante ou rendue complètement théorique en raison de la façon dont l'hyperviseur planifie l'accès au processeur pour les machines virtuelles invitées, à moins que l'hyperviseur ne soit assez intelligent pour la planification de base entre / au sein des machines virtuelles également.
Comme le souligne Dan, vous devez comparer vos tâches (de manière réaliste: c'est-à-dire avec d'autres activités sur l'hôte et pas seulement dans un environnement de test où la VM en question est la seule en cours d'exécution) pour vous assurer que plusieurs vCores / vCPU / les deux est en fait bénéfique à leur performance. La façon dont l'accès aux cœurs est planifié peut entraîner des retards qui annulent tout avantage et, en fait, ralentissent globalement les choses - j'ai vu des rapports où, pour des tâches avec un processeur important, une petite batterie de machines virtuelles à cœur unique sur le même hôte fonctionnait nettement mieux sur le même matériel qu'un plus petit nombre de machines virtuelles multicœurs (où "le plus petit nombre2 en inclut une) (bien sûr, cela est susceptible d'imposer une charge de mémoire beaucoup plus importante à l'hôte).