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.
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.
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.
Résumé de la même VM
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.
Rapport vCops "Machines virtuelles surdimensionnées" ...
Graphique vCops "Déchets récupérables" ...
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.
la source