web-dev-qa-db-fra.com

Ubuntu 12.10 et VMware Workstation 9: la mise en cache de RAM entraîne une baisse importante des performances

J'ai lu beaucoup de discussions sur la mise en cache de la mémoire et la réponse standard de "grande mémoire cache est bonne, cela ne devrait pas affecter les performances", "le noyau le sait mieux".

J'ai récemment passé de 12.04 à 12.10 et passé de VirtualBox à VMware Workstation et les différences de performances sont importantes (je suppose que c'est à cause de ce dernier).

Lorsque j'exécute ma machine virtuelle, le graphique de contrôle de la charge système indique généralement moins de 50% d'utilisation de la mémoire. enter image description here L'indicateur de charge du système m'indique que le reste de ma RAM est utilisé dans le cache tout le temps.

C'est simple, c'est la comparaison:

AVANT

  • Le cache était très peu utilisé, pratiquement aucune de mes ressources mémoire n'était utilisée par le cache
  • Swapiness était égal à 0 (ma mémoire a d'abord été utilisée, puis permutée uniquement si nécessaire)
  • La performance était assez bonne et logique
    1. La RAM a été entièrement utilisée en premier, la mise en cache était minimale. Je pouvais exécuter suffisamment de logiciels pour utiliser mes 4 Go complets de RAM sans aucune dégradation des performances.
    2. L’espace de swap a ensuite été utilisé selon les besoins, ce qui était évidemment plus lent (je suis sur un disque dur), mais était toujours utilisable lorsque le programme en cours était chargé en mémoire

APRÈS

  • Le cache est utilisé pour remplir la totalité des 4 Go dès que ma machine virtuelle est exécutée
  • Swappiness est égal à 0 (même comportement qu'auparavant, mais le cache utilise immédiatement toute la mémoire)
  • Les performances sont terribles et inutilisables lorsque vous utilisez le logiciel Ubuntu
    1. Les choses de base comme changer de fenêtre prend 2 minutes +
    2. Le changement d’écran se fait image par image sur parfois jusqu’à 5 minutes.
    3. Impossible de lancer un IDE et VM comme je le pouvais avec facilité auparavant

Donc, fondamentalement, des suggestions sur la façon de ramener ma performance à son état actuel avant tout en conservant ma configuration actuelle?

Je pense que le problème est VMWare, mais comment puis-je voir ce qui est lié à l'utilisation du cache? Il existe sûrement un moyen de contrôler ce comportement dans un logiciel aussi poli que VMware?

Merci

EDIT: Il peut également être important de noter que le comportement diffère selon que VMware est ouvert ou fermé. Si VMware est ouvert, le bélier se verrouillera avec un cache de 50% et 50% et entrera dans le verrouillage complet mentionné ci-dessus. En revanche, si VMware est fermé (après avoir été ouvert), la RAM continuera de croître au fur et à mesure de ses besoins/la mémoire cache restera comme la mémoire restante complète et il n'y aura aucune dégradation notable des performances.

EDIT2: J'ai remplacé mon swappiness par 5, comme indiqué, sans changement (j'ai également rencontré les mêmes problèmes de swappiness entre 10 et 60 avant de poser cette question ). À y regarder de plus près, il y a quelque chose de vraiment foiré. Le moniteur système (et confirmé avec les commandes de terminal suggérées - free -m ) affiche les informations suivantes:

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

Ce qui indique que seulement ~ 1 Go de mon RAM est utilisé et que ~ 3 Go est dans le cache disque MAIS mon VM IS en cours d'exécution et IS alloué 1,5 Go de RAM. Il n'y a eu AUCUNE augmentation de mon utilisation de RAM lorsque j'ai chargé la machine virtuelle, mais le cache a sauté. La surveillance du système (confirmée par ps -aux ) indique que vmware a un son correct de 1,8 Go pour RAM mais évidemment gratuitement. -m montre le contraire. Les résultats suggèrent également le contraire, car mon système a du mal à ouvrir même cette page chrome pour poster la réponse (je n'ai que le poste de travail vmware et le terminal ouverts). C'est comme si la mémoire n'était pas déclarée correctement en tant que RAM utilisation de la mémoire (par opposition au cache) et ensuite le noyau ne répond évidemment pas correctement en fonction de cela? Comme pour essayer de libérer la mémoire cache selon les besoins, comme c'est supposé le faire, mais il ne peut pas parce que c'est en fait utilisé mémoire/non cache.

Je ne fais que cracher ici maintenant, cherchant vraiment de l'aide pour savoir comment aller au fond des choses. Avez-vous une idée de ce qui se passe? Existe-t-il un moyen de confirmer qu'il s'agit d'un problème VMware et non d'un problème Ubuntu?

4
B T

La solution a finalement été résolue avec les futures mises à jour du noyau. Pour mémoire, le noyau incriminé à l'origine de ce problème était 3.5.0-17-generic

0
B T

Définir swappiness sur 0 n'est PAS recommandé dans un environnement de production, en particulier pour un hôte qui exécute plusieurs machines virtuelles. J'ai rencontré des problèmes étranges sur les serveurs et mes propres postes de travail, avec swappiness défini sur 0, sa modification à 5 ou à une valeur plus élevée le rend à nouveau normal; ne le définissez pas à zéro, sauf si vous êtes sûr à 100% ce que vous faites et la conséquence, solution de contournement.

Je ne fais pas confiance au moniteur système GNOME. Normalement, utilisez free, vmstat ou dstat.

  1. free Mémoire système disponible = libre + tampons + mis en cache ou + tampons/cache dans la sortie free.
  2. vmstat est principalement utilisé pour surveiller les pages (swap) out/in. Vous devez résoudre le problème si de nombreuses pages sortent/arrivent.
  3. dstat est plus avancé que vmstat

Avez-vous essayé de vérifier les problèmes connus de VMware Workstation? Assurez-vous que vous utilisez 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-trangely

2
Terry Wang