1 votes

Hyper-V n'adapte pas l'accès au processeur pour les machines virtuelles Windows Server 2000

J'ai un rack Dell R710 qui héberge plusieurs machines virtuelles :

  • Windows Server 2008 R2 avec Hyper-V
  • deux Xeon 5520 à 2,26 GHz
  • 32GB mem
  • teamed nic (4 gigabit NICs)
  • toutes les machines virtuelles sont sur leur propre jeu de disques SAS miroirs

Mon problème concerne un serveur virtuel Windows 2000 fonctionnant sur le système ci-dessus. Ce serveur exécute IIS 6, quelques cgi-scripts et quelques pages asp. Tous ces éléments sont liés à la base de données Visual FoxPro.

Ma question est la suivante : comment puis-je donner plus de puissance à ma VM Windows 2000, ou est-ce possible ? Mes paramètres Hyper-V pour la VM au départ étaient les suivants :

  • 3GB mem alloués
  • cœurs virtuels par défaut (1)
  • 10% (dix) Réserve VM
  • Limite de 100% de la VM
  • 100 poids relatif (il y a 2 autres VM hébergées qui sont toutes inactives et se trouvent sur des disques SAS séparés)

Avec cette configuration, si je me connectais aux services web avec 3 comptes, je pouvais faire tourner la VM Win2000 à 100%. J'ai ensuite ajusté les paramètres Hyper-V pour le serveur jusqu'à ce que j'atteigne 100 % :

  • 4 cœurs virtuels
  • Réserve de 100 % des VM (ou 25 % des ressources totales du système)
  • Limite de 100% de la VM
  • 1000 poids relatif

Le plus important, c'est que tout au long de l'année tous Lors de mes tests (configuration supérieure et inférieure), mon serveur rack s'est contenté d'une utilisation totale du processeur d'environ 5 %. Pendant ce temps, ma VM Win2000 fonctionnait exactement de la même manière à chaque fois (CPU bloqué avec 3 comptes connectés effectuant la même recherche, ou 30% d'utilisation du CPU avec un seul compte effectuant une recherche).

J'ai également essayé d'ajuster le paramètre de compatibilité du processeur pour "Exécuter un ancien système d'exploitation, tel que Windows NT". Cependant, je n'ai pas essayé le paramètre "Migrer vers un ordinateur physique avec une version de processeur différente".

Y a-t-il un problème inhérent à la virtualisation du serveur Windows 2000 ? Est-ce qu'il y a quelque chose d'autre que je peux essayer pour capturer plus de cycles CPU du serveur hôte ? Idéalement, j'aimerais que l'hôte atteigne une utilisation de 25 à 50 % lorsque la VM Win2000 est en train de s'épingler.

Quelques informations de base : il s'agit de nos anciens services qui sont en train d'être réécrits en .Net. Il est très probable que des améliorations de performance puissent être obtenues en remaniant le code source existant, mais ce n'est pas une option. Notre atelier ne dispose pas de l'expertise nécessaire en FoxPro et la décision commerciale a été prise que l'effort serait mieux dépensé dans une réécriture.

Il est possible d'acheter un serveur physique rapide pour remplacer la VM. Je suis persuadé que cette solution apporterait une amélioration considérable. Cependant, je préférerais que ce serveur soit virtualisé, car j'ai déjà été échaudé par une machine nécessitant un redémarrage... une tâche facilement réalisable à partir de mon téléphone pour un serveur virtualisé.

Merci d'avance pour toute suggestion que vous pourriez avoir.

5voto

Doug Luxem Points 9572

Premièrement, Windows 2000 seulement prend en charge un seul processeur virtuel sur Hyper-V .

Deuxièmement, la mesure de l'utilisation du processeur du serveur hôte n'est pas aussi simple que l'utilisation du Gestionnaire de tâches, puisque ce dernier est lui-même exécuté dans une machine virtuelle. Pour plus d'informations sur la mesure de l'utilisation du CPU dans Hyper-V, veuillez consulter 本論文 .

3voto

Jason Berg Points 18864

Votre premier problème dans votre petit test avec 4 cœurs est que vous utilisez une configuration non supportée. Lorsque vous utilisez une configuration non supportée, les résultats sont difficiles à prévoir. Consultez le site ce document de Microsoft . Vous ne pouvez utiliser qu'une seule unité centrale lorsque vous utilisez Windows Server 2000 sur Hyper V.

Si vous donnez à votre VM un seul cœur et que vous lui attribuez 100 % de ce cœur, vous avez maximisé les performances de ce système. Vos autres options sont de déployer un boîtier physique ou un hyperviseur qui supporte le SMP sur Windows 2000 (comme ESXi).

1voto

noizetoys Points 494

Les deux autres réponses sont correctes. Si vous appelez Microsoft pour obtenir de l'aide sur Hyper-V et Windows 2000, on vous dira que la seule configuration prise en charge est celle d'un seul processeur virtuel.

Cela dit, je soupçonne que vous avez obtenu exactement les mêmes performances à chaque fois parce que Windows 2000 ne s'est pas reconfiguré automatiquement en tant qu'installation multiprocesseur lorsque vous avez ajouté des processeurs virtuels. Win2K utilisait seulement un CPU, même lorsque vous lui en avez attribué quatre.

Vous devez aller dans le gestionnaire de périphériques et changer le HAL du HAL monoprocesseur au HAL multiprocesseur. (Cela déclenchera l'installation du noyau multiprocesseur, de la ntdll, du HAL, etc. D'après mes souvenirs, environ six binaires ont été modifiés.

Notez qu'il s'agit d'un aller simple. Votre VHD Win2K exécutera du code multiprocesseur indéfiniment par la suite, même si vous revenez à un seul processeur virtuel. Il peut être utile de sauvegarder d'abord votre VHD, car ces binaires multiprocesseurs sont moins efficaces que les binaires monoprocesseurs lorsqu'ils sont exécutés sur un seul vCPU.

Enfin, il faut comprendre que la raison pour laquelle Microsoft ne prend pas en charge davantage de CPU pour Win2K est en partie liée au fait que le noyau de Win2K n'a aucune idée qu'il n'est pas virtualisé et qu'il part du principe que tous les CPU fonctionnent en permanence. Briser cette hypothèse en virtualisant plus de processeurs se traduira par des gains de performance moins que linéaires (toussa, toussa.) Vous pouvez obtenir des performances raisonnables avec deux processeurs. Un plus grand nombre de processeurs ne sera probablement pas utile.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X