8 votes

Mémoire virtuelle dans les machines virtualisées (fichier Swap dans VM ?)

Quelles sont les opinions sur l'autorisation de la mémoire virtuelle à l'intérieur de une machine virtuelle ?

Par exemple, sur une machine hôte dotée de 8 gigaoctets de mémoire, je pourrais faire tourner 4 machines virtuelles dotées chacune de 2 gigaoctets (en gros) et il n'y aurait pas de permutation de l'hôte. Cependant, dans chaque VM, je pourrais avoir un fichier de page de 2 Go, de sorte que le serveur virtuel aurait 4 Go de mémoire utilisable, 2 physiques et 2 virtuels.

OU... Je pourrais donner à chaque VM 4 Gig de "mémoire" et demander à l'hôte d'utiliser 8Gig de mémoire réelle et 8G de mémoire virtuelle et ne pas avoir de fichier page dans chaque VM. Chaque VM aurait toujours 4 Go, mais la pagination se ferait sur l'hôte.

La partie la plus chaleureuse de moi dit qu'il faut configurer la pagination dans chaque invité comme vous le feriez avec un vrai serveur et c'est bon. Mais mon côté analytique voit deux avantages majeurs à surengager la mémoire hôte et à ne pas avoir de pagination dans la VM. Premièrement, l'entrée/sortie de la mémoire virtuelle est alors gérée par le système d'exploitation hôte, qui est plus proche du métal nu, et devrait donc être plus rapide. Et deuxièmement, la pagination ne serait nécessaire que si l'hôte n'avait pas la mémoire disponible. Si l'invité voulait 4Gig, mais que les autres invités n'utilisaient pas leur mémoire, aucune pagination ne serait nécessaire.

Qu'en pensez-vous ?

6voto

Dave Cheney Points 18132

Je ne suis pas un expert en virtualisation (en fait, je pense que c'est le mauvais outil pour le travail la plupart du temps), mais d'après ce que j'ai lu, vos OS invités ne devraient pas être autorisés à permuter. La raison principale d'empêcher le swapping est qu'il représente un moyen pour un OS invité de monopoliser une grande partie de la bande passante IO de l'hôte.

De plus, vous ne voulez pas prétendre à vos systèmes d'exploitation supposés que l'hôte a plus de mémoire physique qu'il n'en a, car cela entraînera un swap important de l'hôte, mais le débogage des problèmes de performance à l'intérieur des systèmes d'exploitation supposés sera très difficile, car de leur point de vue ils ne swappent pas, et aucun des outils au niveau du système d'exploitation dans l'invité ne le montrera.

Il se peut même qu'avec des outils tels que Xen et VmWare, vous ne puissiez pas surcommettre la mémoire sur le système d'exploitation hôte en raison de l'utilisation de pilotes de mémoire baloon.

4voto

Omar Shahine Points 886

Cela dépendrait fortement des conséquences d'un engagement excessif de la mémoire sur votre système d'exploitation hôte. Je serais un peu plus qu'ennuyé si, par exemple, le tueur de Linux out-of-memory massacrait ma machine virtuelle. J'ai tendance à mettre de côté un disque virtuel plus petit, séparé, préalloué, indépendant des instantanés (si cela s'applique à votre solution VM) pour chaque OS invité, à m'assurer que le fichier hébergeant cette image disque n'est pas fragmenté et/ou se trouve sur un disque rapide, et à configurer l'espace d'échange de l'invité pour qu'il réside sur ce disque virtuel. La gestion de la mémoire de l'hyperviseur est aujourd'hui suffisamment bonne pour que je ne sente pas la différence entre l'espace d'échange de l'hôte et celui de l'invité, et je peux ajuster le comportement de l'invité indépendamment. Le meilleur des deux mondes.

2voto

cyphun Points 53

Le propre swap de la VM est d'environ une meilleure isolation des ressources . Une telle VM ne sera pas en mesure de tirer l'hôte vers le bas avec ses demandes de RAM - il est déjà contraint. Et si vous placez le swap sur des disques autres que le système de la VM, vous pouvez même avoir une politique de cache non sécurisée pour celui-ci.

Mais l'échange "externe" concerne une meilleure utilisation de ressources, plutôt.

C'est donc ça : isolement et utilisation - votre choix.

1voto

grapefrukt Points 16804

Je ne donnerais pas de mémoire virtuelle à votre invité à cause des problèmes d'E/S. Je ne donnerais pas non plus à votre hôte de mémoire virtuelle et à l'invité trop de mémoire physique, car l'invité ne se rendrait pas compte qu'il utilise de la mémoire virtuelle plutôt que de la mémoire physique.

Ce qui ne vous laisse pas d'autre solution que d'acheter plus de mémoire. Il n'y a pas vraiment d'alternative pour plus de mémoire. C'est tellement bon marché que si votre serveur peut en supporter plus, j'en prendrais plus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X