J'ai du mal à trouver d'où cette fuite de mémoire se produit. J'utilise Ubuntu 8.04 LTS sur un Dell XPS M1530. J'ai 3 Go de RAM et je trouve après environ une heure d'utilisation que me montre 2 Go + utilisés. Ce qui est étrange, c’est que lorsque j’additionne les pourcentages de mémoire par PID (top ou ps aux), j’aperçois que je ne devrais utiliser que 20 à 25% de mon RAM disponible.
Cela a attiré mon attention sur le fait que j'ai recommencé à exécuter vmware server. Maintenant, évidemment, l'utilisation de la mémoire vive augmente lorsque je charge une machine virtuelle, mais la mémoire utilisée par VMware ne rend pas compte de l'utilisation de la mémoire que je vois via top ou free. L'arrêt du serveur vmware libère la mémoire qui lui a été allouée, mais je ne parviens toujours pas à localiser l'utilisation de cette RAM. Après un redémarrage complet, bien sûr, la mémoire est correcte, mais très rapidement, elle atteint 60 à 80% d'utilisation, les processus ne semblant en représenter qu'un tiers. Des idées où je devrais chercher plus d'informations sur ce que cela pourrait être?
la source
Félicitations, c’est le même "bogue" qui "blesse" les utilisateurs de Windows 7 :) Linux utilise (et le fait depuis au moins 10 ans) la mémoire RAM inutilisée pour mettre en cache des disques et mettre en tampon diverses données. Microsoft a récemment compris que c'était une très bonne idée, et beaucoup de personnes se sont plaintes de cela récemment. Rechercher "windows 7 memory leak" for fun :)
la source
Vérifiez votre "vraie" utilisation de la mémoire avec la commande "free". Notez que linux garde les choses en mémoire le plus longtemps possible, car vous pourriez les utiliser à nouveau. Cela crée une grande utilisation de la mémoire cache / tampon.
Modifier en réponse au commentaire de Keeners:
Avez-vous vérifié la ligne "- / + buffers / cache" (dont je doute que vous puissiez le voir clairement en haut), aviez-vous encore très peu d’espace libre dans cette ligne? Parce que, comme vous pouvez le voir dans mon exemple, il s’agit de la "vraie" mémoire libre, alors qu’en première ligne ou en haut, vous ne voyez qu’une valeur inutile et gratuite. Maintenant, je veux juste m'assurer que vous comprenez le résultat, parce que si vous aviez déjà regardé free comme vous l'avez dit, vous auriez vu que vous n'aviez pas de fuite et que votre machine est en cache, comme vous le dites dans votre dernier commentaire sur la solution. .
la source
Vous pouvez essayer la commande ci-dessous pour libérer le cache sans redémarrer le serveur. Vérifiez
top
avant et après la commande.la source