none
Windows Server 2012 R2, Hyper-V et SSD RRS feed

  • Discussion générale

  • Bonjour,

    Mon soucis est l'optimisation de la rapidité d'un programme sur une VM.

    SITUATION

    Voilà la configuration initiale matériel:

    • HP ProLiant ML30 Gen9
    • Intel Xeon E3-1240V5
    • 16 Go DDR4
    • Grappe RAID A : 4 HDD x 2To HPE Mideline (7200rpm)
    • Grappe RAID B: 1 SSD x 1To Crucial MX300 (C'est HP qui nomme cela "Grappe RAID" même s'il n'y a qu'un disque)

    Le contrôleur est géré par le logiciel HP et j'ai configuré ,avec celui-ci, la grappe A en RAID 10 pour les 4 HDD de 2To.

    Un Windows Server 2012 R2 est installé sur la machine physique avec le rôle Hyper-V.

    Une IP fixe à été attribué à ce serveur nommé "HyperV2016" (c'est original ^^).

    Les deux ports réseaux ont été branchés et associé depuis Windows Server (Configuration d'un "trunk virtuel").

    Bien-sûre, j'ai pris soin de désactiver sur ma machine physique et sur les paramètres de VM le paramètre VMQ (File d'attente d'ordinateurs virtuels) car mes cartes sont des Broadcom 1Gb ne gérant pas ce mode.

    Sous Hyper-V, deux VM sont crée avec une configuration similaire:

    • 4 vCPU
    • RAM Dynamique 4096 Mo min, 8192 Mo au démarrage
    • Disque système de 150 Go (taille fixe pour les deux)
    • Uniquement pour la VM 1 on a un Disque dur supplémentaire de 300Go
    • Réseau crée sous le nom "Réseau VM" (passant par mon association des deux ports Ethernet de mon serveur physique)

    La VM 1 à les rôles suivants:

    • AD
    • DHCP
    • DNS
    • Applicatif

    La VM 2 à les rôles suivants:

    • RDP
    • Applicatif

    Les logiciels sont installés sur la VM1 directement dessus et sur la VM2 en RDP.

    Les deux VM font toutes les deux parties du même domaine.

    La VM2 à un accès via un disque réseau "O:" à un répertoire logiciel situé sur la VM1 (situé sur la partition de 300Go).

    J'ai donc posé mes VM (VHD, fichiers d'échanges...) sur une partition situé sur la grappe RAID A (donc sur le RAID10 de HDD) et une seconde version de ces même VM sur la grappe RAID B (donc sur l'unique SSD) pour réaliser des tests.

    Bien-sûre seules deux VM sont actives à la fois. Soit celles de la Grappe RAID A soit celles de la Grappe RAID B.

    BUT

    Mon but était de voir la différence de vitesse entre le RAID10 de HDD et mon SSD tout seul.

    Je basais mon test principalement sur le comportement d'un des logiciel exécuté sur la VM2 en RDP depuis un poste client sur le même réseau. En mesurant le temps de chargement d'un écran contenant des listes, objets, images...

    Mon souhait était d'accélérer quelques procédés en "trichant" avec le SSD, mais je voulais savoir si la démarche en valait le coup.

    CONSTAT

    Lors de mes tests entre les deux configuration (Grappe RAID HDD et SSD seul) je me suis rendu compte que mes mesures de temps étaient identiques à quelques 10ème de secondes près !!!

    J'ai donc refait mes test mais cette fois-ci directement depuis le serveur lui-même sans passer par le RDP pour éliminer les latences de mon réseau interne (on ne sait jamais ^^) et du RDP.

    Mais là encore très peu de différence....

    QUESTIONS / APPEL A L'AIDE

    Je connais encore trop peu Windows Server 2012 R2 ainsi qu'Hyper-V, donc je me suis dit qu'un paramétrage n'était pas nécessairement bien fait. Ou encore que je n'ai pas encore assez pris de recul sur mon montage actuel. Bref je sèche...

    Auriez-vous une idée de ce pourquoi je n'arrive pas à permettre à mon SSD d'apporter une meilleure rapidité à mes VM qui sont pourtant toutes les deux dessus ?

    Y a-t-il une erreur bête que j'aurais faite au cours de mes diverses configurations ? (ce qui serait géniale car plus vite résolu ^^)

    Je vous remercie d'avance pour vos retours !

    Bonne soirée

    lundi 12 décembre 2016 20:54

Toutes les réponses


  • Bonjour,

    C'est intéressant comme test ! Mais difficile à mesurer attention !

    Avez-vous suivi ce guide pour les Perf Counters ? :  https://msdn.microsoft.com/en-us/library/cc768535(v=bts.10).aspx . Hyper-V et Windows Server fonctionne et ajuste dynamiquement les ressources des guests; et possible que l'hôte aussi. Mesurer les performances brutes depuis la VM me semble compliqué.

    Assurer vous d'avoir configuré le mode high perf sur les VMs et les firmwares à jours
    Attention, en mode RDS le CPU Fair Scheduling peut lissé les tests.

    Je mesurerai aussi depuis l'extérieur(hôtes et vm) , peut-être via cet outil : Hyper-V Performance Monitor Tool (PowerShell) ?
    Mais je doute que vous voyez une différence majeur entre la RAID A et B, saut si l'application est  déjà lente en temps normal et qu'un gain est possible. Sinon c'est peut-être normal d'avoir un gain si faible ?
    (je veux dire que peut-être que l'application est trop légère pour faire une différence ?)

    Si vous voulez voir la différence entre la grappe A & B, sans y installer de VMs (pour référence) je suis persuadé qu'il existe des outils de tests disk/cpu.

    A l’œil nu, c'est difficile à voir je pense.

    Bon stress-tests,
    lundi 12 décembre 2016 21:30
  • aussi ceci, en exemple pour l'optimisation des ressources Hyper-V.
    https://msdn.microsoft.com/en-us/library/cc768529(v=bts.10).aspx
    lundi 12 décembre 2016 21:36
  • Bonjour,

    Merci pour ce retour !

    Oui en effet la mesure depuis la VM est difficile.

    Non je n'avais pas suivis ce guide, je vais donc essayer avec.

    Pour les firmwares, oui ils sont à jours.

    Les tests sur les VM que j'ai effectué étaient exécutés directement depuis le serveur et aussi en RDS. (J'ai utilisé IOMETER)

    Malheureusement, la différence entre ces deux contextes de test est extrêmement mince.

    En effet, pour le moment je ne vois pas de différence entre le RAID A et B. Mais j'ai pu à côté monter un autre serveur sans RAID.

    Un Fujitsu avec la même configuration processeur, RAM que mon HP ML30.

    Mais du côté des disque, un HDD 7200rpm en disque système et un SSD sur lequel les VM sont stockés.

    Là j'ai un chargement plus rapide d'une seconde sur les pages les plus lourdes de mon application.

    Il y a une différence qui à je penses aussi un impact, l'OS de la machine physique sur cette machine est un Windows 10 Pro et non un Windows Server 2012 R2.

    J'ai l'impression quand je regarde les deux architectures que l'OS et/ou le RAID sont responsables de la différence de latence. Est-ce probable ?

    (Le contrôleur RAID de mon HP ML30 est un HP Dynamic Smart Array B140i SATA 6Gb/s)

    J'ai utilisé l'outil que vous m'avez conseillé : Hyper-V Performance Monitor Tool (PowerShell)

    J'ai lancé la récupération de donnée sur 10mn et voici ce que j'obtiens sur la VM1:

    • DiskRead(K) 379
    • DiskWrite(K) 26
    • DiskRead(IOPS) 7
    • DiskWrite(IOPS) 2
    • DiskQueueLength 0

    Pour la VM2:

    • DiskRead(K) 13
    • DiskWrite(K) 9
    • DiskRead(IOPS) 1
    • DiskWrite(IOPS) 1
    • DiskQueueLength 0

    Qu'en pensez-vous ?

    Je n'ai pas encore essayer les optimisations de ressources que vous m'avez conseillé dans le dernier lien. Je vais voir cela d'ici ce soir.

    Encore merci de votre aide.

    Bonne journée.


    • Modifié Vandrekk mardi 13 décembre 2016 10:33
    mardi 13 décembre 2016 10:05
  • J'ai continuer les tests et j'en arrive au constat que le soucis ne vient pas d'HP ou du matériel en lui-même.

    J'ai donc fait un test pour voir si cela venait du système utilisé (Windows Server 2012 R2).

    Pour cela j'ai fait simple, j'ai installé un Windows 10 Pro car il peut aussi avoir le rôle Hyper-V.

    # INSTALLATION OS PHYSIQUE

    J'ai formaté la partition C: et remplacé le système WS2012R2 par le W10Pro. De cette manière j'ai conservé mes partitions et leur contenus (VHD de mes VM) sur le RAID et le SSD.

    Après avoir configuré mon système, ajouté le rôle Hyper-V et redémarré, j'ai configurer mes VM.

    Nous avons donc un OS sur le serveur HP ML30 : Windows 10 Pro et toujours les même VM puisqu'on garde les VHD présents sur les disques (donc 2 VM avec pour OS WS2012R2).

    # TEST AVEC LES VM SUR LE SSD

    J'ai repris les VHD du SSD dans un premier temps pour tester ce nouveau système avec ce matériel.

    Les VM ont été configurés à l'identique qu'indiqué précédemment. 

    Lorsque je test le chargement de mes pages, INCROYABLE, le temps est carrément divisé par 2 par rapport à la même configuration sous WS2012R2 ! (avant : 5.28sec, maintenant: 2.72sec)

    # TEST AVEC LES VM SUR LE RAID HDD

    J'ai repris les VHD dans ma partition D: sur le RAID de HDD.

    Les VM ont été configurés à l'identique qu'indiqué précédemment.

    Lorsque je test le chargement de mes pages, c'est moins flagrant, mais je met beaucoup moins de temps quand même par rapport à la même configuration sous WS2012R2. (Avant: 5.45sec, maintenant: 2.98sec)

    Comment se fait-il qu'on ai cette différence ?

    Y a-t-il un paramétrage sous WS2012R2 qui "ralentirait" le système et/ou HyperV ?

    Pour le moment je ne me l'explique pas, je continu mes recherches.

    Si quelqu'un à une idée sur le sujet je suis preneur :)

    Bonne journée ! 

    jeudi 15 décembre 2016 10:55
  • Bonsoir, On peut connaître l’issu de cette histoire ? Cela m’intéresse.
    vendredi 24 août 2018 21:59