Serveur d'impression

10 meilleures pratiques et stratégies pour la mémoire dynamique Hyper-V – Bien choisir son serveur d impression

Le 25 août 2019 - 17 minutes de lecture

L'une des promesses de la virtualisation est que le matériel sera utilisé plus efficacement. Nous le constatons plus particulièrement avec les processeurs, où même les processeurs sur des hôtes densément chargés ont tendance à avoir plus de cycles libres qu'improbables. La mémoire est à l'opposé de ce spectre. Il épuise si rapidement qu'il définit presque toujours la limite du nombre de machines virtuelles sur un hôte donné. Votre meilleur outil pour maîtriser la consommation de mémoire est une gestion prudente – qui, comme nous le savons tous, n’est qu’une chimère. La gestion de la précision nécessite du temps que peu d'administrateurs ont et elle ne laisse aucune place à l'erreur ou à la croissance. Par conséquent, nous devons plutôt nous tourner vers un outil facilement disponible: la mémoire dynamique. Cela ne nous dégage pas de la responsabilité de la diligence raisonnable et de la bonne gestion, mais cela peut changer:

Mémoire hôte sous-utilisée

Mémoire hôte sous-utilisée

Dans ceci:

Mieux calculer grâce à la mémoire dynamique

Mieux calculer grâce à la mémoire dynamique

La mémoire dynamique vous permet d’utiliser davantage le matériel que vous possédez. Cela peut réduire le nombre d'hôtes requis, ce qui permet de réduire les coûts de matériel et de licence. Cela peut également vous aider à alléger le fardeau que vous imposez la micro-gestion de l’allocation de mémoire de vos invités. Malheureusement, ce n’est pas une solution miracle, ni une technologie à part entière. Il existe un certain nombre de meilleures pratiques pour tirer le meilleur parti de la mémoire dynamique.

À titre de référence, l'image suivante montre la page de configuration de la mémoire dynamique pour un ordinateur virtuel Hyper-V:

Configuration de mémoire dynamique

Configuration de mémoire dynamique

1. Gardez vos hôtes à jour

Un bug détecté dans Hyper-V empêchait les invités de recevoir de la mémoire supplémentaire, même lorsque la demande était en hausse et que davantage était disponible. L’article KB (KB3095308) et les instructions d’acquisition des correctifs sont disponibles sur le site de support de Microsoft. Même s’il n’existe aucun correctif disponible spécifiquement pour la mémoire dynamique (ce qui est la norme), vous en bénéficiez quand même. Live La migration d'un invité est un signal envoyé à Dynamic Memory pour voir s'il y a quelque chose à nettoyer. Le redémarrage d'un hôte non clusterisé réinitialise l'allocation de mémoire pour les invités qui se ferment et déclenche une réévaluation pour les autres de la même manière que Live Migration.

2. Installez Integration Services et maintenez-les à jour

Tous les systèmes d'exploitation Windows et Windows Server actuellement pris en charge sont fournis avec Integration Services, mais les éditions inférieures de Windows ne prennent pas en charge la mémoire dynamique (certaines versions de Windows 8.1 sont disponibles sur TechNet). Si ceux-ci ne sont plus à jour, le comportement de la mémoire dynamique n’est pas optimal. N'oubliez pas que jusqu'à la base de code WS2016 / W10, Integration Services peut uniquement être mis à jour à l'aide de vmguest.iso sur l'hôte.

De nombreux invités Linux prennent en charge la mémoire dynamique si les composants d'intégration sont installés. Commencez par la page racine de TechNet pour Linux sur Hyper-V. Sur la gauche, localisez votre distribution ou la distribution la plus proche de. Vous trouverez des détails sur la prise en charge des composants d’intégration; les composants d'intégration font maintenant partie de presque toutes les distributions. Vous pouvez trouver des instructions particulières pour vous assurer que la mémoire dynamique fonctionne pour votre distribution, telles que les exigences de dimensionnement de la mémoire.

3. N'essayez pas d'utiliser la mémoire dynamique partout

Si vous utilisez une application serveur répandue, vous pouvez parfois effectuer simplement une recherche sur Internet pour ce produit et «Mémoire dynamique». Par exemple, «Puis-je utiliser la mémoire dynamique avec Exchange?» Accordez toujours plus de poids à la documentation du fabricant d'origine qu'aux blogs ou forums techniques indépendants… non pas parce que le fabricant est nécessairement la meilleure source, mais parce que le fabricant contrôle le support. Certains éditeurs de logiciels s’efforceront de déterminer le fonctionnement de leur application avec le gestionnaire de mémoire Windows et publieront des directives rigoureuses. D'autres vont simplement vous laisser à vos propres appareils. Malheureusement, de nombreux fournisseurs avec lesquels j'ai dû travailler publient des chiffres très arbitraires et insistent pour que vous en réserviez 100%. Vous pouvez augmenter les densités et économiser de l'argent en ignorant leurs exigences, mais vous risquez d'être placé dans des limbes de soutien.

4. Surveillez toujours l'utilisation de la mémoire des invités

Utilisez un outil automatisé pour garder un œil sur la demande en mémoire et les valeurs d’affectation de vos machines virtuelles. Au pire, planifiez quelque chose comme ceci:

5. Ne négligez pas la valeur de démarrage

La mémoire dynamique pour une seule machine virtuelle a trois valeurs d'allocation: minimum, démarrage et maximum. La mémoire de démarrage correspond à ce qui sera alloué à l'invité au moment de l'activer. Ce montant sera immuable jusqu'à ce que le pilote de mémoire dynamique de l'invité communique correctement avec Hyper-V. La valeur de démarrage est l'endroit le plus critique pour contrôler les densités d'hôte. Lorsqu'un hôte est démarré et que le service de gestion des machines virtuelles (VMMS) démarre, il recherche toutes les machines virtuelles configurées pour démarrer automatiquement. S'il détecte qu'il est en train de récupérer d'un crash, il recherche également les ordinateurs virtuels qui étaient en cours d'exécution lorsque cela s'est produit. Il essaie de tous les démarrer simultanément. Sauf dans les rares cas où Smart Paging démarre (reportez-vous à la section «Configuration de la mémoire minimale avec opération de redémarrage fiable» dans la partie supérieure de cette page), la quantité de mémoire hôte physique disponible détermine les machines virtuelles qui seront activées. Si vous avez défini des priorités, c'est un guide que VMMS suivra dans des conditions de mémoire insuffisante, mais ce ne sont pas les priorités qui empêchent les invités de démarrer. c'est la famine de mémoire. Réduire les valeurs de démarrage peut atténuer cette situation.

Sur le revers de l'assignation trop de mémoire de démarrage n'attribue pas assez. Si vous êtes sur le point d’installer Windows Server 2012 à 2012 R2, il vous verrouillera à l’écran de la clé de produit si vous avez attribué moins de 1 gigaoctet. Pour les opérations normales, je n’ai personnellement rencontré aucun problème lors de l’installation classique de Windows Server avec 512 Mo de valeur de démarrage. J'ai reçu et lu quelques rapports de personnes ayant rencontré des problèmes qui semblaient être liés à une taille de cache insuffisante du système d'exploitation lorsque la mémoire dynamique était utilisée. Malheureusement, je n'ai jamais vu aucune de ces personnes poursuivie pour une cause fondamentale ou une solution significative; il semble que tout le monde qui a rencontré le problème a simplement cessé d'utiliser Dynamic Memory. Bien que cela soit certainement opportun, ce n’est absolument pas la solution que je recommanderais.

6. Pariez haut sur les valeurs minimales

De nombreuses personnes n’ont pas encore remarqué que vous pouvez réduire la valeur minimale de la mémoire dynamique à tout moment. La machine virtuelle doit uniquement être désactivée si vous augmentez la valeur minimale. Si vous constatez régulièrement dans votre système de surveillance que la demande d’une machine virtuelle est inférieure à la valeur qui lui est attribuée et que la valeur attribuée se rapproche de la valeur de démarrage, vous êtes potentiellement candidat pour une valeur de mémoire dynamique minimale inférieure. Réduisez-le un peu. Écoutez votre système de surveillance et vos utilisateurs. L'utilisation de la mémoire peut être une chose instable et il existe des applications dont les besoins en mémoire peuvent rapidement augmenter. Si vous avez trop abaissé votre minimum, il se peut que votre mémoire ne soit plus suffisante pour que la mémoire attribuée reste dans les limites autorisées.

7. Pariez bas sur les valeurs maximales

Tout comme le minimum peut être abaissé à tout moment, le maximum peut être augmenté à tout moment. C'est beaucoup plus critique que le minimum. Par défaut, la valeur maximale de la mémoire dynamique pour chaque ordinateur virtuel est de 1 téraoctet. En théorie, c'est parfaitement sûr. Hyper-V n'allouera jamais plus de mémoire à un invité que l'hôte ne peut en économiser. En pratique, c'est très dangereux.

Bien que la plupart des choses fonctionnent correctement, il existe un très vilain petit problème appelé «fuite de mémoire». Je suis sûr que vous en avez entendu parler. Si vous ne saviez pas ce qu’ils étaient et si vous aviez peur de demander, je vous le dirai. Une fuite de mémoire survient lorsqu'une application demande de la mémoire au système d'exploitation, que cette demande est accordée et que l'application en perd la trace. En ce qui concerne le système d'exploitation, cette mémoire appartient toujours à l'application. L'application a oublié à ce sujet. À la pièce, les fuites de mémoire ne sont pas un gros problème. Une application peut perdre quelques octets ici et là sans jamais causer de problème. Parfois, le problème est beaucoup plus prononcé. Une application peut demander de la mémoire et l'utiliser pour représenter une construction particulière, telle qu'un paramètre utilisateur. Il était peut-être alors prévu de libérer de la mémoire pour ce paramètre utilisateur alors que celui-ci n’en a pas besoin, mais de le redemander lorsque le besoin s’en fera sentir. Si le programmeur a fait une erreur et que la mémoire n'est jamais libérée, chaque demande ultérieure entraîne l'allocation de mémoire supplémentaire, mais jamais renvoyée. La quantité de mémoire demandée combinée à la fréquence de la mémoire demandée constitue la mesure directe de la gravité de la fuite. Le tableau ci-dessous illustre la différence entre une application qui fonctionne et la même application si elle contient un bogue et ne libère pas correctement de la mémoire:

Exemple de fuite de mémoire

Exemple de fuite de mémoire

Dans la ligne «Application qui fuit», à chaque point du graphique où un objet est libéré, la mémoire associée n'est pas libérée. L’allocation de mémoire de cette application continue à augmenter au fil du temps. En revanche, la version fonctionnant correctement se déplace de haut en bas au cours de son fonctionnement normal. Si cette case n'est pas cochée, l'application qui fuit continuera à utiliser de plus en plus de mémoire jusqu'à ce qu'elle soit fermée ou que son système d'exploitation ne puisse plus traiter ses demandes.

Évidemment, cette condition est la faute du développeur de l’application, mais cela ne vous aide pas beaucoup. Votre travail consiste à vous assurer que toutes les machines virtuelles fournissent leurs services. La seule façon de contrôler cela consiste à utiliser un maximum raisonnable pour la mémoire de la machine virtuelle. N'oubliez pas qu'une application qui a fonctionné parfaitement hier peut présenter une fuite de mémoire non encore détectée et que les correctifs peuvent toujours casser plus qu'ils ne résolvent.

Utilisez votre outil de surveillance comme guide pour définir des maximums raisonnables et surveillez les changements inhabituels de la demande.

8. Utiliser des tampons plus petits pour les machines virtuelles plus grandes et statiques

Le tampon est simplement affiché sous forme de pourcentage dans la fenêtre de configuration sans aucun contexte. La base sur laquelle ce pourcentage est calculé est la mémoire actuellement assignée valeur. Ainsi, si Dynamic Memory a donné 4,2 Go à une machine virtuelle et que la mémoire tampon est définie sur 20%, 0,84 Go de mémoire est réservée à l'extension de mémoire. À lui seul, le tampon n'est pas nécessairement dangereux. Bien que Hyper-V ne résiste pas à l’abandon de la mémoire tampon d’une machine virtuelle vers une autre machine virtuelle, il le fera si la demande l’exige. Ajoutez néanmoins tous les tampons de toutes les machines virtuelles de votre hôte et vous constaterez qu’il est presque certain qu’au moins quelques désirs du système ne sont pas satisfaits.

La mémoire tampon est simplement là pour permettre aux opérations d’extension de se dérouler plus rapidement en réponse à la demande accrue d’une machine virtuelle. Pour les machines virtuelles auxquelles beaucoup de mémoire est déjà affectée, il est peu probable qu'une extension nécessite ce que la mémoire tampon a à offrir. Réduisez-le.

Pour les machines virtuelles qui changent peu, le tampon est un peu inutile. Une fois que vous avez trouvé l’équilibre d’une machine virtuelle, réduisez ou éliminez même le tampon.

9. Utiliser le poids de la mémoire pour guider l’allocation de la mémoire

Nous avons déjà parlé un peu de la priorité dans le n ° 5. le Poids de la mémoire le champ est l'endroit où vous contrôlez cette priorité. Les éléments de poids supérieur sont appelés en premier sur toutes les affectations de mémoire, au démarrage et lorsque la mémoire dynamique doit déterminer où pousser ou extraire de la mémoire.

10. Ne vous fiez pas au rapport de mémoire de l’invité

Le gestionnaire de mémoire de l’invité n’a pas une idée précise de ce qui se passe, vous ne pouvez donc pas lui faire confiance. La capture d'écran suivante a été prise depuis un invité avec la mémoire dynamique activée:

Vue invité de la mémoire dynamique

Vue invité de la mémoire dynamique

En même temps, l'hôte rapporte ceci:

Vue hôte de la mémoire dynamique

Vue hôte de la mémoire dynamique

L'hôte est la source d'information fiable. L’invité affiche 1,1 Go de mémoire totale. Cela reflète la quantité maximale de mémoire jamais attribuée à cet invité depuis la dernière mise sous tension. Hyper-V montre que le maximum que pouvez être attribué est de 2 Go. La différence entre les deux reflète la possibilité que j’ai fixé le maximum plus élevé que nécessaire. En bas à droite de l'écran de l'invité, vous pouvez voir qu'il est conscient que sa mémoire maximale est de 2 Go. Ce champ est spécifique aux nouveaux invités Hyper-V; les systèmes d'exploitation plus anciens n'avaient pas cette capacité et le champ n'apparaît pas sur les systèmes physiques. Ensuite, nous arrivons à la partie importante. Notez que Hyper-V indique que 864 Mo sont attribués alors que l'invité indique qu'il utilise 910 Mo. Le pilote de mémoire dynamique à l'intérieur de l'invité a verrouillé suffisamment de mémoire pour prendre en compte la différence. L’invité pense que la mémoire est utilisée par ce pilote. En vérité, Hyper-V a été relâché pour être attribué à l'une de mes machines virtuelles les plus gourmandes. L’invité a tort à propos de la valeur totale de sa mémoire actuelle. Sachez que tant que la machine virtuelle est activée, ce nombre ne diminuera jamais. Le chauffeur réclamera ce dont il a besoin. Le nombre peut augmenter de la valeur de démarrage à la valeur maximale, en fonction des besoins de l'invité.

11. Surveillez les cycles naturels de flux et reflux pouvant être exploités avec la mémoire dynamique

Certaines machines virtuelles auront des cycles naturels dans lesquels ils utilisent beaucoup ou peu de mémoire par rapport à d’autres parties de la journée. Par exemple, si vous avez une application qui traite les opérations d’arrivée / de sortie d’horloge des employés, elles sont probablement plus occupées aux heures de rotation des quarts qu’à toute autre heure de la journée. Les contrôleurs de domaine ont généralement la charge la plus lourde en début de journée. Les mandataires Internet sont souvent très actifs vers midi. Votre outil de surveillance peut exposer ces pics et ces vallées. Vous pouvez utiliser la mémoire dynamique pour augmenter les densités en faisant correspondre l'épilation d'un système à la perte d'un autre.

Stratégies sensibles de mémoire dynamique

L'utilisation correcte de la mémoire dynamique comporte un élément d'art. Vous pouvez certainement utiliser votre système de surveillance pour tracer des valeurs très scientifiques, mais vous allez y investir beaucoup de temps, et il est fort probable que quelque chose va changer avant que votre tâche ne soit terminée. Vous pouvez développer des raccourcis pour vous rendre la vie plus facile. Voici quelques idées:

  • Définissez comme politique que la mémoire dynamique est la configuration par défaut des machines virtuelles. Au lieu de penser que quelqu'un doit justifier l'utilisation de la mémoire dynamique, faites en sorte que quelqu'un fournisse une bonne raison de ne pas utiliser la mémoire dynamique. Exiger que ces arguments soient étayés par des preuves empiriques et reproductibles.
  • Lors de l'évaluation de nouveaux produits logiciels, insérez des questions sur la mémoire dynamique dans votre liste de contrôle de découverte. Plus important encore, le fournisseur prendra-t-il en charge l’application dans un environnement de mémoire dynamique?
  • Établissez un démarrage et un minimum standard pour des versions de système d'exploitation spécifiques et éventuellement des éditions. Par exemple, j'utilise normalement 512 Mo pour les deux invités 2012 R2. Je surveille ensuite tous les systèmes et attends que les raisons pour lesquelles des modifications soient apportées apparaissent. Les maximums par défaut peuvent être un peu plus durs, mais n'hésitez pas à choisir un nombre raisonnable, mais faible. J'utilise généralement 2 Go pour les systèmes d'exploitation serveur. Une fois que les normes ont été établies, imposez à quiconque construit une machine virtuelle non conforme à la norme de fournir une justification.
  • Si vous mettez en cluster, explorez le rééquilibrage automatisé. Microsoft System Center Virtual Machine Manager peut fournir cette fonctionnalité, mais vous pouvez également vous asseoir et écrire un script PowerShell qui équilibre automatiquement les ordinateurs virtuels en fonction de la demande en mémoire.

Pour plus d'informations sur la mémoire dynamique Hyper-V, consultez notre guide illustré ici. Si vous recherchez de l’aide avec le guide d’extraction de la configuration de la mémoire dynamique Hyper-V.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.