La CPU sur le système hôte Hyper-V est en mode ralenti, même si les VM sont à pleine puissance

J'ai un server qui exécute Windows 2008 64 bits Hyper-V, avec 8 gigs de RAM et Intel Xeon X3440 @ 2,53 Ghz, ce qui me donne 8 kernelx logiques dans le moniteur de performance sur le système hôte.

J'ai configuré trois machines virtuelles, toutes fonctionnant sous Windows 2008 32 bits.

  1. Créer un server, exécuter la ville de l'équipe
  2. Serveur de mise en scène
  3. SQL Server, exécutant SQL Server 2005

Ces trois machines fonctionnent très lentement, elles sont à 100% de processeur même si le système hôte n'utilise presque aucun processeur, généralement inférieur à 10% total.

Quelqu'un pourrait-il donner quelques conseils quant à la meilleure configuration pour l'allocation de CPU? Devrais-je configurer chaque server pour avoir deux kernelx, ou devrais-je augmenter ce nombre au-dessus du nombre total de kernelx sur l'hôte?

Quel est le bon nombre à définir sur la réserve de machine virtuelle et la limite de machine virtuelle?

Est-ce que 8 gigs de RAM physique sont insuffisants pour 3 machines virtuelles?

Merci d'avoir lu. 🙂

5 Solutions collect form web for “La CPU sur le système hôte Hyper-V est en mode ralenti, même si les VM sont à pleine puissance”

Bjørn, vous vous inquiétez de quelque chose qui n'est pas un problème. Dans votre cas, vous avez un hyperviseur et quatre machines virtuelles. Une de ces machines virtuelles (l'OS de gestion) est venu avec l'hyperviseur. Vous avez ensuite installé trois machines virtuelles.

Demandez-vous si vous souhaitez voir l'OS de gestion en utilisant le time CPU. Idéalement, vous voulez qu'il laisse autant de time CPU que possible aux trois machines virtuelles que vous avez configurées.

C'est exactement ce que fait Hyper-V, en supposant que vous avez installé les «composants d'intégration VM» dans toutes vos machines virtuelles. Ces composants rendent les E / S beaucoup plus efficaces en installant des pilotes destinés aux machines virtuelles. Ensuite, à less que vos machines virtuelles ne soient particulièrement chargées en E / S, votre operating system de gestion sera simplement assis là où vous attendez pour que vous interagissez avec elle, en essayant d'utiliser le less de ressources possible. C'est une bonne chose.

Si vous souhaitez voir les mésortingques actuelles de l'hyperviseur, et non le operating system de gestion, utilisez le moniteur de performance dans le operating system de gestion et searchz les counturs Hyper-V. Cela vous informera de l'utilisation physique du processeur.

Doug Luxem (qui semble en savoir beaucoup à ce sujet) a répondu bien sur un autre fil aujourd'hui. Je vais donc simplement voler son text:

Tout d'abord, vous devez vous callbacker que dans Hyper-V, le «hôte» s'appelle une partition parent et c'est vraiment un invité virtualisé avec des permissions et des rôles spéciaux. Tout comme tout autre enfant / invité, lorsque vous ouvrez le Gestionnaire des tâches, vous ne pouvez pas voir l'utilisation du CPU des autres enfants sur le server.

Ben Armstrong a une bonne explication de ceci ici: http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/28/hyper-v-virtual-machine-cpu-usage-and-task-manager.aspx

Enfin, regardez l'utilisation de RAM dans vos machines virtuelles. Regardez la longueur de la queue du disque. Ils vous diront si vous avez besoin de plus de RAM. Il semble toutefois que vos machines virtuelles aient besoin de CPU plus totale que l'hôte doit donner.

Je ne me souviens pas à 100% de la façon dont cela a fonctionné, mais examinez ce qui suit

Je crois que le operating system Hyper-V (système hôte si vous le souhaitez) est juste un shell et n'indique pas ces counturs correctement, et non pas dans perfmon de toute façon. Il se pourrait aussi qu'il affiche uniquement ce que le operating system hôte utilise lui-même, et non les machines virtuelles.

Cela fait longtime que j'ai travaillé avec Hyper-V, mais je pense que c'était la base de ce que vous voyez.

Bonne chance

Ok, en tant que quelqu'un qui exécute beaucoup de machines virtuelles;)

  • La memory n'est pas le problème, bien évidemment. Ou, je dois regarder IO du côté hôte (c'est-à-dire totalement) ET du côté VM, mais si vous parvenez à allouer 100% de processeur dans une machine virtuelle, il est évident que vous ne trachez pas les disques et n'utilisez pas les fentes CPU réparties. Ne pas dire que plus de memory n'est pas utile, mais comme un ordinateur physique – une VM entrant dans la memory virtuelle ne serait pas capable d'utiliser pleinement tous les cycles CPU alloués.

  • Vous dites que le processeur est à 100%, mais l'hôte ne fait que s'effondrer. Combien de cœurs de processeurs ont le HOST? Iff, c'est un système de 4 core, hyper-threading (exposant 8 cores – désolé, je suis totalement un type AMD), une machine virtuelle utilisant 2 kernelx à 100% SEULEMENT apparaîtra comme – 25% pour démarrer sur l'hôte. Cela suppose déjà que vous utilisiez la manière appropriée de mesurer l'utilisation de la CPU pour commencer (les counturs Prpoer Hyper-V ou le gestionnaire Hyper-V pour une idée courte). Un server ONE CORE sur un hôte 8 CORE CAN – physiquement – n'utilise jamais que 12,5% de l'alimentation CPU disponible pour commencer. Si cela rend la machine virtuelle lente de l'intérieur (ce qui pourrait être – dépend de la priorité de la CPU interne de VM), alors – ceci est comme un ordinateur normal surchargé, mais l'hôte le voit à peine.

En tant que tel, 3 processeurs VM et 8 core ne font aucun sens pour utiliser 1 CPU virtuelle par hôte. Vous ne laissez généralement pas la puissance de votre processeur impossible pour les machines virtuelles. Si vous allez dual core sur chaque server – en supposant que le server et les process en bénéficient – cela vous donnera une meilleure uitlisation. Cela dit, vous pourriez pouvoir aller plus haut – en fonction de la répartition de la charge (SQ LServer fait-il beaucoup alors que les autres servers sont occupés?).

Tout comme l'exemple – une de mes machines est un système AMD Opteron de 32 gigaoctets (bientôt 64 gbytes). Je reçois rarement la CPU entièrement chargée (avec seulement 4 cœurs) – tout simplement parce que même si je déploie plus d'une douzaine de servers, la plupart ne sont pas occupés en même time, ou des systèmes de chargement légers (par exemple, plusieurs DNS). J'ai un autre server où TFS (Ms équivalent à TeamCity) s'exécute, et si j'ai des actions là-bas, les choses sont méchantes. Les tests, les tests unitaires, les tests de laboratoire de machine virtuelle programmés, les tests de l'unité de database – utilisent tous des tonnes de puissance de processeur. En fonction de l'occupation de ce CAN nécessite plus de puissance de la CPU. Comment l'achat est principalement un élément de «combien d'users» – 2-3 développeurs gardent rarement le server occupé la plupart du time.

Donc, même si vous allouez plusieurs cœurs pour, par exemple, TeamCity, vous allez faire des compilations multiples en même time ou pas? S'il y a un développeur qui vérifie, il ne se verra jamais vérifier dans deux projets en même time;) mais essayez;)

Ok, ce que j'ai fait jusqu'ici:

Mémoire atsortingbuée à chaque server: 2300, 2300 et 2000 méga. Cela laisse juste un peu de memory libre sur l'hôte et chacun des VM.

4 processeurs virtuels sur chaque server. À tout moment, la plupart du time fonctionnent deux servers, le server SQL soit avec le server de construction, soit avec le server de mise en scène. Cela signifie que probablement la plupart du time, 8 processeurs virtuels seront occupés à la fois, les 4 derniers n'ayant pas fait autant.

La réserve de machine virtuelle est définie sur 0 sur toutes les machines virtuelles. Limite machine virtuelle réglée à 100% sur toutes les machines virtuelles.

Dans une tentative désespérée d'get la CPU occupée, j'ai configuré les process de travail de VM en priorité en time réel sur l'hôte.

Les lectures de la CPU sont encore très faibles sur l'hôte, mais maintenant elles ne sont pas si intenses sur les VM, et elles semblent plus réactives.

Il s'agit d'une publication courte et bonne sur l'utilisation de l'Hyper-V et du processeur. Je laisserai l'explication à l'article.

En outre, la meilleure pratique pour get une performance optimale des machines virtuelles est de vous assurer d'avoir une cartographie 1: 1 des kernelx logiques et physiques. Donc, si vous avez 3 machines virtuelles et 8 kernelx, vous pouvez faire 2 processeurs logiques sur toutes les machines virtuelles, en laissant deux pour l'hyperviseur / hôte.

Il est généralement une mauvaise idée d'augmenter le nombre logique au-dessus du nombre physique.

Une autre façon d'accélérer les performances consiste à configurer des VHD statiques ou à passer des disques.

8 Go de RAM devrait être plus que suffisant pour trois de la plupart des machines virtuelles, mais tout dépend des applications en cours d'exécution et de la manière dont elles souhaitent fonctionner de manière optimale. Vérifiez la documentation sur chacun.

J'espère que cela t'aides.

  • Utilisation de la cmdlet PowerShell Restart-Service avec un service ayant un nom d'instance
  • Hyper-V: atsortingbuer des machines virtuelles à une IP publique à partir d'un sous-réseau
  • SBS 2008 Backup Drive Full - Code d'erreur '2147942512'
  • Migrer le directory des users sur Windows Server 2008
  • Désactiver NLA côté client
  • Réglage de la session Astuce classique lorsque vous êtes trop occupé?
  • Suppression du dossier SuppPools temporaire supprimé
  • Comment puis-je rendre WSUS less invasif pour nos users?
  • Windows Server: Empêchez la copy de logiciels
  • Paramètres par défaut du server d'printing forcé sans ressortingction
  • modifier le logo de SharePoint?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.