J'ai une configuration assez simple : Hôte Windows Server 2012 Hyper-V, avec deux machines virtuelles (toutes deux sous Server 2012), une pour IIS, une pour SQL Server. Ils sont tous connectés via le NIC physique
La nuit dernière, j'ai essayé d'ajouter un commutateur virtuel et de configurer des NIC virtuels sur les deux machines virtuelles (en plus du NIC physique).
Je n'avais pas encore basculé les serveurs pour utiliser vraiment les NIC virtuels, mais pour une raison quelconque, cela a détruit la vitesse de connexion entre les deux machines virtuelles - même si les NIC virtuels n'étaient pas utilisés. On passe de 200-500 millisecondes à 30-90 secondes par requête !
Alors ce matin, après avoir vu l'énorme impact sur mon site, j'ai désactivé les deux NIC virtuels, puisque c'est la seule chose que j'ai changée, et bien sûr, les vitesses sont revenues.
En fin de compte, je dois les passer à l'utilisation des v-NIC, mais je dois d'abord résoudre ce problème.
Qu'est-ce qui pourrait causer cela ? Et que puis-je faire pour le résoudre ?
Détails supplémentaires :
La configuration est en fait très simple (ce qui pourrait être une partie de mon problème, je pourrais simplifier ce dont j'ai besoin pour configurer cela).
J'ai un seul serveur avec un seul NIC (physique). Actuellement, ce NIC est utilisé pour la communication entre l'hôte virtuel et l'internet, ainsi que entre les deux machines virtuelles et l'internet. Il est également utilisé pour la communication interne entre les deux machines virtuelles.
Cependant, j'essaie de passer la communication interne à travers le commutateur virtuel via vNIC, libérant le NIC physique pour être utilisé uniquement pour la communication externe.
J'ai donc ajouté un commutateur virtuel interne à l'hôte virtuel, puis ajouté un NIC virtuel à chaque machine virtuelle.
Après avoir fait cela, c'est à ce moment que mes vitesses de connexion - via le NIC physique - ont considérablement baissé. La désactivation des vNIC (via la configuration réseau des machines virtuelles) a restauré la vitesse normale.
Voici des captures d'écran de la configuration VM pour le NIC physique externe et les vNIC internes (sur une seule machine virtuelle, car elles sont configurées de manière identique).
Un autre tour de détails
En creusant un peu plus sur le problème, il semble que les NIC Broadcom sont notoires pour les problèmes de performances. Ce serveur dispose de deux NIC Broadcom BCM5716C. Voici quelques liens vers des discussions sur les problèmes connus :
Accès réseau lent dans les machines virtuelles - Broadcom et Hyper-V
Très lent réseau de machine virtuelle Hyper-V - VMQ - Broadcom
J'ai donc commencé à jouer avec les paramètres, en désactivant divers paramètres, un par un. Aucun des changements ne semblait avoir d'impact sur le problème - si j'active le vNIC invité, les vitesses de chargement passent à plus de 25 secondes. En le désactivant de nouveau, elles reviennent à 250 ms - un facteur de 100 !
J'ai également essayé d'installer les derniers pilotes Broadcom, sans différence.
À ce stade, j'ai l'impression qu'il s'agit d'un problème de compatibilité entre le NIC Broadcom et Hyper-V. Mais je ne veux pas commander de nouveaux NIC et passer par la peine d'arrêter le site, de les installer et de les configurer, pour que le problème persiste.
Il serait donc bien si je pouvais définitivement exclure ou non le NIC.
Configuration du NIC physique sur le gestionnaire de commutation
Configuration du commutateur virtuel sur le gestionnaire de commutation
Configuration du NIC physique sur la machine virtuelle DB
Configuration du NIC virtuel sur la machine virtuelle DB