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. 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
APRÈS
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?
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
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
.
free
Mémoire système disponible = libre + tampons + mis en cache ou + tampons/cache dans la sortie free
.vmstat
est principalement utilisé pour surveiller les pages (swap) out/in. Vous devez résoudre le problème si de nombreuses pages sortent/arrivent.dstat
est plus avancé que vmstatAvez-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:
https://serverfault.com/questions/449296/why-is-linux-reporting-free-memory-trangely