4 votes

Ubuntu 12.10 et VMware Workstation 9 : le cache RAM entraîne des chutes de performance importantes

J'ai lu de nombreux threads sur le caching en mémoire et la réponse standard de "un grand cache est bon, cela ne devrait pas affecter les performances", "le kernel sait mieux".

J'ai récemment mis à niveau de 12.04 à 12.10 et suis passé de VirtualBox à VMware Workstation et les différences de performances sont sévères (je soupçonne que cela soit dû à ce dernier).

Quand je lance ma machine virtuelle, le graphique du moniteur de charge système montre généralement moins de 50% d'utilisation de la mémoire. entrer la description de l'image ici L'indicateur de charge système me montre que le reste de ma RAM est utilisé en cache tout le temps.

Tout simplement, voici la comparaison :

AVANT

  • Le cache était très peu utilisé, quasiment aucune de mes utilisations de mémoire n'était dans le cache
  • Le swappiness était de 0 (la mémoire était utilisée en premier, puis le swap seulement si nécessaire)
  • Les performances étaient assez bonnes et logiques
    1. La RAM était utilisée entièrement en premier, le caching était minimal. Je pouvais exécuter suffisamment de logiciels pour utiliser mes 4 Go de RAM sans aucune dégradation des performances
    2. Ensuite, l'espace de swap était utilisé si nécessaire, ce qui était évidemment plus lent (je suis sur un HDD) mais restait utilisable lorsque le programme en cours était chargé en mémoire

APRÈS

  • Le cache est utilisé pour remplir les 4 Go entièrement dès que ma machine virtuelle est lancée
  • Le swappiness est de 0 (même comportement qu'avant mais le cache utilise toute la mémoire immédiatement)
  • Les performances sont terribles et inutilisables lors de l'exécution de logiciels Ubuntu
    1. Des choses basiques comme changer de fenêtre prend plus de 2 minutes
    2. Le changement d'écrans se fait image par image, parfois jusqu'à 5 minutes
    3. Impossible de faire fonctionner un IDE et une VM comme je pouvais le faire facilement auparavant

Alors, avez-vous des suggestions sur comment retrouver les performances comme elles l'étaient avant tout en conservant ma configuration actuelle ?

Je soupçonne que VMware est le problème, mais comment voir ce qui est lié à l'utilisation du cache ? Il doit sûrement y avoir un moyen de contrôler ce comportement dans un logiciel aussi perfectionné que VMware ?

Merci

ÉDITION : Il pourrait également être important de noter que le comportement diffère selon que VMware est ouvert ou fermé. Si VMware est ouvert, alors la RAM restera à environ 50% avec 50% de cache et entraînera le gel complet mentionné ci-dessus. À l'inverse, si VMware est fermé (après avoir été ouvert), alors la RAM continuera d'augmenter au besoin / le cache restera en mémoire restante complète sans aucune dégradation des performances notable.

ÉDITION2 : J'ai changé mon swappiness à 5 comme suggéré, aucun changement (j'avais également les mêmes problèmes avec un swappiness de 10 et de 60 avant de poser cette question). En y regardant de plus près, il y a quelque chose de vraiment désordonné. Le moniteur système (et confirmé avec les commandes de terminal suggérées - free -m notamment) montre ce qui suit :

ben@ben-HPdv6:~$ free -m
         total       used       free     shared    buffers     cached
Mem:          3945       3827        117          0         42       2770
-/+ buffers/cache:       1014       2931
Swap:         1905          0       1905

Cela indique que seulement ~1 Go de ma RAM est utilisé et ~3 Go sont en cache disque, MAIS ma VM EST en cours d'exécution et a 1,5 Go de RAM allouée. Il n'y a PAS eu d'augmentation de ma RAM utilisée quand j'ai chargé la VM, mais le cache a bondi. Le moniteur système (confirmé avec ps -aux) indique que vmware a correctement alloué 1,8 Go de RAM mais évidemment free -m indique le contraire. Les résultats suggèrent également le contraire car mon système a eu du mal à ouvrir cette page Chrome pour poster la réponse (je n'ai que VMware Workstation et le terminal ouverts). C'est comme si la mémoire n'était pas déclarée correctement comme utilisation de RAM (par opposition au cache) et ensuite le kernel ne répond évidemment pas correctement sur la base de cela ? Comme s'il essayait de libérer la mémoire cache au fur et à mesure comme il est censé le faire mais qu'il ne peut pas car c'est en fait de la mémoire utilisée / non du cache.

Je lance simplement des idées ici maintenant, je cherche vraiment de l'aide pour comprendre ce qui se passe. Avez-vous la moindre idée de comment découvrir ce qui se passe ? Y a-t-il un moyen de confirmer que c'est un problème de VMware et non un problème d'Ubuntu ?

2voto

Terry Wang Points 8890

Définir swappiness à 0 n'est PAS recommandé en environnement de production, surtout pour un hôte exécutant plusieurs machines virtuelles. J'ai rencontré des problèmes étranges sur des serveurs et mes propres postes de travail, avec swappiness réglé à 0, le modifier à 5 ou une valeur plus élevée le rend de nouveau normal, ne le définissez tout simplement pas à zéro, à moins d'être sûr à 100% de ce que vous faites et des conséquences, des solutions de contournement.

Je ne fais pas confiance au Moniteur Système GNOME. Utilisez normalement free, vmstat ou dstat.

  1. free La mémoire système disponible = libre + tampons + mis en cache, ou + tampons/cache dans la sortie de free.
  2. vmstat est principalement utilisé pour surveiller les pages entrantes/sortantes (échange). Vous devez investiguer si beaucoup de pages entrantes/sortantes se produisent.
  3. dstat est plus avancé que vmstat

Avez-vous essayé de vérifier les problèmes connus de VMware Workstation ? Assurez-vous d'exécuter la dernière version : 9.0.1 ?

Gestion de la mémoire Linux :

http://www.linuxatemyram.com/

https://serverfault.com/questions/449296/why-is-linux-reporting-free-memory-strangely

0voto

aaa Points 36

La solution a finalement été résolue grâce aux futures mises à jour du noyau. Pour information, le noyau problématique qui a causé ce problème était 3.5.0-17-generic

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