La gestion de la mémoire VMware semble être un acte d'équilibre délicat. Avec la RAM de cluster, les pools de ressources, les techniques de gestion de VMware (TPS, ballon, échange d'hôte), l'utilisation de la RAM dans la machine virtuelle, le swapping, les réservations, les parts et les limites, il y a beaucoup de 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 s'il s'agissait de matériel physique. En conséquence, cela signifie qu'une construction VM standard peut avoir 4 vCPUs et 16 Go ou plus de RAM. Je viens de l'école qui consiste à commencer petit (1 vCPU, RAM minimale), vérifier l'utilisation réelle et ajuster au besoin. Malheureusement, de nombreuses exigences des fournisseurs et des personnes peu familières avec la virtualisation demandent plus de ressources que nécessaire... Je suis intéressé à quantifier l'impact de cette décision.
Quelques exemples d'un cluster "problème".
Résumé du pool de ressources - Semble presque 4:1 sur-assigné. Notez la quantité élevée de RAM ballonnée.
Allocation de ressources - La colonne "Allocation en cas de pire scénario" montre que ces VM auraient accès à moins de 50% de leur RAM configurée dans des conditions contraintes.
Le graphique d'utilisation de la mémoire en temps réel de la principale VM dans la liste ci-dessus. 4 vCPU et 64 Go de RAM alloués. Il dépasse rarement les 9 Go d'utilisation.
Résumé de la même VM
-
Quels sont les inconvénients de sur-assigner et de sur-configurer des ressources (en particulier de la RAM) dans les environnements vSphere ?
-
En supposant que les VMs peuvent fonctionner avec moins de RAM, est-il juste de dire qu'il y a des surcoûts à configurer des machines virtuelles avec plus de RAM que ce dont elles ont réellement besoin ?
-
Quel est l'argument contraire à : "si une VM a 16 Go de RAM alloués, mais n'utilise que 4 Go, où est le problème ?" ? Par exemple, les clients doivent-ils être éduqués sur le fait que les VM ne sont pas identiques au matériel physique ?
-
Quelle(s) métrique(s) spécifique(s) devraient être utilisée(s) pour mesurer l'utilisation de la RAM. Suivre les pics "Actifs" par rapport au temps ? Regarder "Consommé" ?
Mise à jour : J'ai utilisé vCenter Operations Manager pour profiler cet environnement et obtenir des détails sur les statistiques du cluster mentionnées ci-dessus. Bien que les choses soient définitivement sur-affectées, les VM sont en réalité tellement surconfigurées en RAM inutile que l'empreinte mémoire réelle (minuscule) ne montre aucun contentieux de mémoire au niveau du cluster/de l'hôte...
Je retiens que les VM devraient vraiment être dimensionnées correctement avec un peu de marge pour la mise en cache au niveau du système d'exploitation. Suraffecter par ignorance ou en raison des "exigences" du fournisseur entraîne la situation présentée ici. Le ballonnement de la mémoire semble mauvais dans tous les cas, car il y a un impact sur les performances, donc le dimensionnement correct peut aider à l'éviter.
Mise à jour 2 : Certaines de ces VM commencent à planter avec :
kernel:BUG: soft lockup - CPU#1 bloqué depuis 71s !
VMware décrit cela comme un symptôme d'une suraffectation importante de la mémoire. Donc je suppose que cela répond à la question.
Rapport "Machines virtuelles surdimensionnées" de vCops...
Graphique "Déchets récupérables" de vCops...
0 votes
Si vous configurez les machines virtuelles avec
provisionnement mince
, la situation ne devrait-elle pas se résoudre automatiquement, puisque les machines virtuelles n'utiliseraient que ce dont elles ont besoin ?