Formation vSphere - Quels sont les inconvénients de la configuration de machines virtuelles avec * trop * beaucoup de RAM?

57

La gestion de la mémoire VMware semble être un exercice d'équilibre délicat. Avec la RAM de cluster, les pools de ressources, les techniques de gestion de VMware (TPS, montgolfière, permutation d'hôte), l'utilisation de la RAM en invité, la permutation, les réservations, les partages et les limites, il existe de nombreuses variables.

Je suis dans une situation où les clients utilisent des ressources de cluster vSphere dédiées. Cependant, ils configurent les machines virtuelles comme si elles se trouvaient sur du matériel physique. À son tour, cela signifie qu'une version de machine virtuelle standard peut avoir 4 vCPU et 16 Go ou plus de RAM. Je viens de l’école de petite entreprise (1 vCPU, RAM minimale), de vérifier l’utilisation dans le monde réel et d’ajuster si nécessaire. Malheureusement, de nombreuses exigences des fournisseurs et des personnes peu familiarisées avec la virtualisation demandent plus de ressources que nécessaire ... Je souhaiterais quantifier l'impact de cette décision.


Quelques exemples d'un cluster "problème".

Récapitulatif du pool de ressources - Ressemble presque 4: 1 surchargé. Notez la quantité élevée de RAM en ballon. entrez la description de l'image ici

Allocation de ressources - La colonne Allocation des cas les plus défavorables indique que ces machines virtuelles auraient accès à moins de 50% de leur RAM configurée dans des conditions contraignantes. entrez la description de l'image ici

Graphique d'utilisation de la mémoire en temps réel de la première machine virtuelle de la liste ci-dessus. 4 vCPU et 64 Go de RAM alloués. Il utilise en moyenne moins de 9 Go. entrez la description de l'image ici

Résumé de la même VM entrez la description de l'image ici


  • Quels sont les inconvénients de la surconsommation et de la surconfiguration des ressources (en particulier de la RAM) dans les environnements vSphere?

  • En supposant que les ordinateurs virtuels peuvent fonctionner avec moins de RAM, est-il juste de dire que la configuration de machines virtuelles avec plus de RAM qu’elle est réellement fastidieuse?

  • Quel est le contre-argument de: "si une machine virtuelle a 16 Go de RAM allouée, mais utilise seulement 4 Go, quel est le problème ?? "? Par exemple, les clients doivent-ils savoir que les ordinateurs virtuels ne sont pas identiques au matériel physique?

  • Quelle (s) mesure (s) spécifique (s) faut-il utiliser pour mesurer l'utilisation de la RAM? Suivi des pics "Actif" par rapport au temps? Regarder "Consumed"?


Mise à jour: j'ai utilisé vCenter Operations Manager pour profiler cet environnement et obtenir des informations détaillées sur les statistiques de cluster répertoriées ci-dessus. Bien que les choses soient définitivement surchargées, les machines virtuelles sont tellement surconfigurées avec de la RAM inutile que la véritable (minuscule) empreinte mémoire ne montre pas de conflit de mémoire au niveau du cluster / de l'hôte ...

Ce que je retiens, c'est que les machines virtuelles doivent être de la bonne taille avec un peu de tampon pour la mise en cache au niveau du système d'exploitation. S'engager hors des ignorances ou des "exigences" du vendeur conduit à la situation présentée ici. Le gonflement de la mémoire semble être mauvais dans tous les cas, car il y a un impact sur les performances, donc une bonne taille peut aider à empêcher cela.

Mise à jour 2: Certaines de ces machines virtuelles commencent à se bloquer avec:

kernel:BUG: soft lockup - CPU#1 stuck for 71s! 

VMware décrit cela comme un symptôme de surengagement de la mémoire . Donc, je suppose que cela répond à la question.

entrez la description de l'image ici


Rapport vCops "Machines virtuelles surdimensionnées" ... entrez la description de l'image ici

Graphique vCops "Déchets récupérables" ...

entrez la description de l'image ici

ewwhite
la source

Réponses:

45

La gestion de la mémoire de vSphere est plutôt correcte, bien que les termes utilisés créent souvent beaucoup de confusion.

En règle générale, évitez les surcharges de mémoire, car elles créent exactement ce type de problème. Cependant, il y a des moments où cela ne peut pas être évité, donc prévenir, c'est prévenir!

Quels sont les inconvénients de la surconsommation et de la sur-configuration des ressources (en particulier de la RAM) dans les environnements vSphere?

L’inconvénient majeur des ressources trop engageantes est qu’en cas de conflit, vos hôtes seraient contraints de ballonner, d’échanger ou de planifier / dédupliquer intelligemment en arrière-plan afin de donner à chaque VM la RAM dont elle a besoin.

Pour gonfler des ballons, vSphere gonfle un "ballon" de RAM au sein d'une machine virtuelle choisie, puis le donnera à l'invité qui en a besoin. Ce n'est pas vraiment "mauvais" - les ordinateurs virtuels se volent mutuellement de la RAM, il n'y a donc aucun échange de disque en cours - mais cela pourrait conduire à une alerte erronée et à des métriques asymétriques si celles-ci reposent sur l'analyse de l'utilisation de la RAM de la machine virtuelle, car celle-ci gagne ne pas être marqué comme "ballon", juste qu'il est "utilisé" par le système d'exploitation.

L’autre fonctionnalité que vSphere peut utiliser est le partage transparent (TPS), qui consiste essentiellement en une déduplication de la RAM. vSphere analysera périodiquement toutes les ressources RAM allouées à la recherche de pages dupliquées. Une fois trouvé, il dédoublera et libérera les pages dupliquées.

Jetez un oeil à la gestion mémoire de vSphere livre blanc (PDF) - en particulier « Reclamation Mémoire ESXi » (page 8) - si vous avez besoin d' une explication plus approfondie.

En supposant que les ordinateurs virtuels puissent fonctionner avec moins de RAM, est-il juste de dire que la configuration de machines virtuelles avec plus de RAM qu’elle en a besoin est fastidieuse?

Il n'y a pas de surcharge visible - vous pouvez allouer 100 Go de RAM sur un hôte de 16 Go (cependant, cela ne signifie pas que vous devriez , pour les raisons mentionnées ci-dessus).

La mémoire totale utilisée par tous vos ordinateurs virtuels est la courbe "active" indiquée dans vos graphiques. Bien sûr, vous ne devez jamais vous fier à ce chiffre pour calculer le montant que vous souhaitez surcharger, mais si vous disposez de statistiques historiques, vous pouvez les analyser et les utiliser en fonction de leur utilisation réelle.

La différence entre la RAM "active" et "consommée" est discutée dans ce fil de discussion de la communauté VMWare .

Quel est le contre-argument de: "si une machine virtuelle a 16 Go de RAM allouée, mais utilise seulement 4 Go, quel est le problème ??" ? Par exemple, les clients doivent-ils être éduqués?

En bref, la réponse est oui : les clients doivent toujours être informés des meilleures pratiques, quels que soient les outils à leur disposition.

Les clients doivent apprendre à dimensionner leurs ordinateurs virtuels en fonction de ce qu'ils utilisent plutôt que de ce qu'ils veulent . Très souvent, les utilisateurs spécifient excessivement leurs ordinateurs virtuels simplement parce qu’ils ont peut-être besoin de 16 Go de RAM, même si, historiquement, ils gênent 2 Go par jour. En tant qu'administrateur vSphere, vous avez les connaissances, les mesures et le pouvoir de les contester et de leur demander s'ils ont réellement besoin de la mémoire RAM allouée.

Cela dit, si vous associez la gestion de la mémoire de vSphere à des limites de sur-engagement soigneusement contrôlées, vous rencontrerez rarement un problème, dans la pratique, la probabilité de manquer de mémoire RAM pendant une période prolongée est relativement faible.

De plus, vMotion automatisé (appelé Planification distribuée des ressources par VMware) est essentiellement un équilibreur de charge pour vos ordinateurs virtuels. Si un seul ordinateur virtuel devient une véritable source de ressources, DRS doit effectuer la migration des ordinateurs virtuels afin d'optimiser l'utilisation des ressources du cluster.

Quelle métrique spécifique devrait être utilisée pour mesurer l'utilisation de la RAM. Suivi des pics "Actif" par rapport au temps?

La plupart de ces questions sont abordées ci-dessus - votre principale préoccupation devrait être l'utilisation "active" de la mémoire RAM, bien que vous deviez définir avec soin vos seuils de surcapacité afin que, si vous atteignez un certain ratio ( il s'agit d'un exemple correct , même s'il peut être légèrement obsolète). En règle générale, je resterais certainement à moins de 120% de la RAM totale du cluster, mais il vous appartient de décider du rapport avec lequel vous êtes à l'aise.

Quelques bons articles / discussions sur le sur-engagement de la mémoire:

Craig Watson
la source
D'après ce que je comprends, plus de RAM allouée à une machine virtuelle signifie qu'il est plus difficile pour DRS de migrer la machine virtuelle. La migration entre les nœuds est plus longue, car la copie de la RAM prend plus de temps; et plus la quantité de mémoire RAM requise est importante, moins il est probable que DRS puisse trouver un bloc suffisamment volumineux et gratuit. Cela peut être particulièrement gênant (on m'a laissé croire) si vous rencontrez un événement (par exemple, une panne matérielle) qui réduit la capacité du cluster. Les petites machines virtuelles sont faciles à mélanger et ne risquent pas de causer beaucoup de pannes. Les grandes machines virtuelles peuvent être délicates. Ai-je été informé correctement?
James Polley
2
@James - seule la mémoire active (c'est-à-dire utilisée) est migrée pendant vMotion, de sorte que la quantité de RAM allouée à vos machines virtuelles importe moins. Référence: vmware.com/files/pdf/VMware-VMotion-DS-FR.pdf
Craig Watson
Très bonne réponse. J'ai mis à jour ma question avec plus de détails sur ce groupe particulier. Vos points sont bons, cependant. Il s'avère que les ordinateurs virtuels de cette configuration sont fortement surconfigurés. L'utilisation active de la RAM est bien en dessous des ressources physiques du cluster, il n'y a donc pas de conflit ... Juste une bulle / un échange / une laideur. Je soupçonne que le dimensionnement correct des machines virtuelles atténuera cette pression.
ewwhite
21

En plus de l'excellente réponse de Craig Watson, j'aimerais ajouter ce qui suit:

Une surcharge de mémoire dans VMware n'est pas une chose à faire exprès. Cela indique généralement que vous ou votre client surabonnez le matériel.

Si le seul choix est de trop s'engager, je vous recommande fortement de faire respecter les règles de priorité. Si quelqu'un est déterminé à donner à une machine virtuelle non critique 16 Go de vRam alors qu'il n'a besoin que de 4 Go - placez au moins cette machine virtuelle dans un pool de ressources faible ou donnez-lui une priorité basse. Vous ne voulez vraiment pas qu'une base de données de production critique soit remplacée par l'hyperviseur. Non seulement les performances vont-elles s’essouffler, mais elles vont également absorber les files d’E / S par rapport à votre stockage principal.

Si vous utilisez un stockage extrêmement rapide (FusionIO, Violin, SSD locaux, etc.), alors l’échange de données n’est peut-être pas une préoccupation majeure, mais avec le stockage SAN traditionnel, vous affecterez éventuellement chaque machine virtuelle et chaque hôte connectés au même contrôleur / contrôleur.

Pauska
la source
4
Bonne observation sur l'impact de la permutation sur le stockage. Cela explique certains problèmes de performances du VNX que j'ai vus ....
ewwhite
Point brillant, je n'ai jamais pensé à prendre l'argument d'E / S de stockage,
Dan