Mémoire inactive qui ne se libère presque jamais

  • Créateur du sujet Créateur du sujet TonyT
  • Date de début Date de début

TonyT

Membre actif
2 Mai 2010
151
1
40
Le Mans
www.tonymusic.fr
Bonsoir,

J'ai remarqué depuis un moment, sur plusieurs Macs (sous 10.6, 10.7, 10.8) que la mémoire inactive ne me semble pas bien gérée.

J'ai fait des recherches sur ce forum, d'autres personnes sont dans mon cas, et on leur dit de purger la mémoire avec Onyx par exemple. Bon, certes. C'est ce que je fais jusqu'à présent, avec FreeMemory. Mais ça ne me semble pas normal tout de même, de devoir aire ça à la main..



Sur ette image, on voit 3,30 Go d'inactif, et pendant que je faisais ma capture d'écran, la mémoire disponible variait toutes les secondes entre 600 Mo et 20 Mo.. J'étais en train de bosser sur FCP X, et j'avais de beaux ralentissements.

Je bosse sur un iMac 27", avec le plus puissant des Core i7 proposés, 8 Go de dam (bon, par contre, je suis sur un disque dur, et non un SSD). Mais je ne suis pas cencé avoir de ralentissements pour faire ce dont j'avais besoin (un timelapse de 820 photos, pesant un peu moins de 5 Go)
5 Go pour le chargement des photos, il reste 3 Go pour FCPX et l'OS, je ne faisais rien d'autre à ce moment là.

Donc ma question : Pourquoi cette mémoire inactive ne se libère pas quand on en a besoin, et est-il possible de spécifier quelque part dans le système, de le forcer à l'utiliser quand il est à court ?

Je cite Apple : (http://support.apple.com/kb/HT1342?viewlocale=fr_FR)

Inactive :

Il s’agit des informations contenues dans la mémoire RAM non utilisées actuellement, mais récemment utilisées.

Si, par exemple, vous avez utilisé l’application Mail et que vous l’avez ensuite fermée, la mémoire RAM utilisée par cette application est marquée comme inactive. La mémoire inactive est disponible pour une utilisation par une autre application, comme la mémoire disponible. Cependant, si vous ouvrez l’application Mail avant que sa mémoire inactive ne soit utilisée par une autre application, Mail s’ouvre plus rapidement, car sa mémoire inactive est convertie en mémoire active, et n’est donc pas chargée depuis le disque qui est plus lent.


"la mémoire inactive est disponible pour une autre application"... Pas trop dans mon cas :D

Si quelqu'un a une idée, ou du moins une explication, je suis preneur :)

Merci beaucoup !
 
Bonjour,

La zone de mémoire dites inutilisée porte assez mal son nom. En fait, quand on lance une application, et qu'on la quitte, on peut voir que le Mac possède moins de mémoire vive disponible qu'avant. En réalité, le Mac conserve une partie des informations en RAM pour optimiser le lancement la prochaine fois. C'est pour cela que les applis s'exécute plus rapidement lors du deuxième lancement. Ainsi, le fait qu'il y est de la mémoire inactive n'influe en rien au bon fonctionnement de la machine. Et il ne sert à rien de la purger.

La question est plutôt de se demander si le Mac swappe ? de temps en temps, ou continuellement.

Voici un fil pour avoir plus ample précision :
http://forums.macg.co/mac-os-x/questions-sur-la-gestion-de-la-memoire-ram-dans-mac-os-x-240522.html

Pour revenir à ton problème, as tu fait un "top" dans le terminal pour voir qui consomme quoi, et surtout les pageout
 
Dernière édition:
Bonjour,

La zone de mémoire dites inutilisée porte assez mal son nom. En fait, quand on lance une application, et qu'on la quitte, on peut voir que le Mac possède moins de mémoire vive disponible qu'avant. En réalité, le Mac conserve une partie des informations en RAM pour optimiser le lancement la prochaine fois. C'est pour cela que les applis s'exécute plus rapidement lors du deuxième lancement. Ainsi, le fait qu'il y est de la mémoire inactive n'influe en rien au bon fonctionnement de la machine. Et il ne sert à rien de la purger.

La question est plutôt de se demander si le Mac swappe ? de temps en temps, ou continuellement.

Voici un fil pour avoir plus ample précision :
http://forums.macg.co/mac-os-x/questions-sur-la-gestion-de-la-memoire-ram-dans-mac-os-x-240522.html

Pour revenir à ton problème, as tu fait un "top" dans le terminal pour voir qui consomme quoi, et surtout les pageout


Je pense qu'il connait bien tout ça vu que c'est déjà parfaitement expliqué dans son message...

Pour la commande TOP, sa copie d'écran pourrait donner l'équivalent, sous réserve de classer par % processeur (on y trouve d'ailleurs les pages out)
 
Dernière édition:
Les pages out sont différents de 0, sans être énorme. Mais cela ne m'étonne pas trop, si c'est lors de l'utilisation d'un logiciel lourd (comme FCPX).
 
Pascal a répondu directement : utiliser la commande purge est la seule bonne solution.
Et, oui ! la mémoire n'est toujours pas bien gérée par Mac OS X (mieux qu'avant mais ce n'est pas génial).

Le paradoxe étant que l'on conserve des éléments en mémoire pour optimiser mais que, en conséquence, le système crée rapidement du swap qui, lui, va tout ralentir [la pagination étant assez médiocre].
Il suffit de programmer régulièrement purge pour réduire très nettement la taille du swap voire l'éliminer complètement. Tout bénef !
 
il ne te reste plus que 2 solutions :
1 voir pour un SDD supplémentaire ( si augmentation I/O DD )
2 aller au dela de 8Go pour la ram ( et c'est pas trop cher )
 
Merci à tous :)

Pascal : la commande "purge" ne libère rien de la mémoire RAM utilisée, je viens de faire le test.

SDION : J'ai bien compris ce principe du "je garde la mémoire au cas où on relancerait l'application", mais cette mémoire est tout de même cencée être pouvoir utilisée par une autre application. Exemple, j'utilise Logic Pro, 4 Go nécéssaires. Je bosse 2 heures dessus, j'arrête, je veux lancer Final Cut. Avec les 4 Go gardés "au cas où" pour Logic, et les presque 2 Go utilisés par le système, il n'en reste plus que 2 pour Final Cut. Et quand le besoin de RAM se fait ressentir, ça swappe à mort..

J'ai regardé avec la commende "top", mais je ne sais pas trop quoi analyser la dedans, et tous les processus ne sont pas dans la liste. Et dans Moniteur d'activité, si j'additionne toute la ram utilisée par toutes les applis, je n'arrive même pas à la taille de la mémoire utilisée, comme si il y avait un tas de processus cachés.

Rémy, peux-tu me dire quel est le nom de la colonne à regarder pour les pages out ?

Bompi : oui, mais cette commande ne m'apporte pas toujours cette récupération de mémoire.. Tout à l'heure, j'avais 1,5 Go d'inactif, j'exécute "purge", toujours 1,5 Go d'inactif.
Par contre, un logiciel dispo sur le Mac App Store, "FreeMemory", nettoie assez bien cette mémoire. Mais ce qui m'énerve un peu c'est d'avoir à penser à faire cette manie, ayant quitté Windows pour toutes ces manips qu'on devait faire, je suis passé à Mac, en me retrouvant dans le même cas, c'est un peu chiant..

BlueG3 : J'ai pensé à installer un SSD, et éventuellement 16 Go de RAM, mais pour installer ça dans un iMac, j'ai un peu peur (pour la garantie surtout) Et c'est tout de même dommage d'avoir acheté une machine à 2700 euros pour rencontrer ces problèmes..

Mais merci en tous cas à tous pour votre aide :)
 
Je reviens la dessus car c'est un point qui m'énerve de temps en temps.

Le problème c'est que si tu passes à 20 Go de RAM, tu auras le même soucis. Avec des applis qui bouffent beaucoup, tu te retrouves avec 15 Go de mémoire "inactives" et quand tu utilises une autre, l'OS ne libère pas à temps cette mémoire inactives et ça rame ... je trouve ça pas terrible.

Et je ne suis pas d'accord avec Pascal, c'est pire qu'avant. On avait pas ces soucis sur PowerPC ... la mauvaise gestion de la mémoire est arrivé avec Intel, et c'est une des choses qui fait le Mac ressemble encore plus à un PC.

Par contre la commande purge, marche bien chez moi, elle me libère bien tout. C'est juste que ça devrait être automatique, ou au moins un réglage pour lancer automatiquement le purge quand il ne reste plus que X Go de mémoire disponible ...
 
Dernière édition:
Je reviens la dessus car c'est un point qui m'énerve de temps en temps.

Le problème c'est que si tu passes à 20 Go de RAM, tu auras le même soucis. Avec des applis qui bouffent beaucoup, tu te retrouves avec 15 Go de mémoire "inactives" et quand tu utilises une autre, l'OS ne libère pas à temps cette mémoire inactives et ça rame ... je trouve ça pas terrible.

Et je ne suis pas d'accord avec Pascal, c'est pire qu'avant. On avait pas ces soucis sur PowerPC ... la mauvaise gestion de la mémoire est arrivé avec Intel, et c'est une des choses qui fait le Mac ressemble encore plus à un PC.

Par contre la commande purge, marche bien chez moi, elle me libère bien tout. C'est juste que ça devrait être automatique, ou au moins un réglage pour lancer automatiquement le purge quand il ne reste plus que X Go de mémoire disponible ...
:o .Oh la purge.
 
Ce n'est pas du tout arrivé avec Intel. Il y a eu une amélioration continue jusqu'à Snow Leopard puis, depuis Lion, de nouveaux comportements étranges (du moins, peu satisfaisants).
Je ne pense pas que la gestion de la mémoire, au niveau du système, ait grand-chose à voir avec le processeur. En regardant les sources de dynamic_pager je ne vois rien de spécial à ce sujet.

Mais des idées saugrenues, il y en a, comme le nouveau mode standby, qui entraîne une consommation de swap inutile.
 

Merci mais j'aimerais un truc automatique, et qui anticipe la saturation. En général quand on veut purger c'est qu'on est déjà en rade de RAM et bien ralenti ;)

Merci Bompi, mais pour moi ça a pas mal coïncidé, quand je suis passé du PowerBook G4 au MacIntel. Non seulement les applis consommaient beaucoup plus (j'étais plus à l'aise avec 2 Go sur PB G4 que sur mon iMac Penryn avec 4 Go en utilisant les mêmes logiciels), mais même sous Leo, Tiger je me souviens plus, on avait déjà le soucis.

Enfin bon, de toutes façon on a pas le choix, Apple bâcle de plus en plus OS X car tous les efforts vont sur iOS. Je veux juste trouver une parade intelligente ;)
 
Dernière édition:
J'utilise FreeMemory sur mon MBP, mais apparemment ce soft ne serait pas si clean qu'un purge, car il swap en fait la mémoire inactive (ou une partie) sur le DD ... c'est une astuce, qui fait ramer la machine un moment, et ce n'est donc pas très performant ...

Va falloir que je regarde le reste, l'idéal étant un soft qui lance simplement un purge quand on atteint un seuil de mémoire vive dispo ... sinon c'est une idée d'appli pour un dev Mac ;)
 
<...>
Merci Bompi, mais pour moi ça a pas mal coïncidé, quand je suis passé du PowerBook G4 au MacIntel. Non seulement les applis consommaient beaucoup plus (j'étais plus à l'aise avec 2 Go sur PB G4 que sur mon iMac Penryn avec 4 Go en utilisant les mêmes logiciels), mais même sous Leo, Tiger je me souviens plus, on avait déjà le soucis.

Enfin bon, de toutes façon on a pas le choix, Apple bâcle de plus en plus OS X car tous les efforts vont sur iOS. Je veux juste trouver une parade intelligente ;)
Si tu parles de consommation de mémoire, je ne sais pas pour le passage de PPC à x86 mais par contre le passage de 32 à 64 bits a un impact évident. Je ne me souviens plus d'où on en était sur le PPC : 32 bits seulement, non ?

Pour le reste, on voit effectivement qu'Apple ne dispose pas de ressources suffisantes pour gérer au mieux la partie ordinateur de son activité. Personnellement, pour le système, un félin sans grande nouveauté fonctionnelle mais avec une nette amélioration des fonctions de base et des fonctionnalités actuelles, un tel félin me conviendrait parfaitement.
Mais c'est comme les calendes grecques, ça n'arrive jamais... Apple ne s'intéresse qu'aux sujets qui lui paraissent intéressants, pas aux sujets qui intéressent ses utilisateurs (tout en faisant un peu croire l'inverse, évidemment). C'est ainsi et ça ne changera pas comme ça.
 
j'utilisais freememory jusqu'à ce que je passe en SSD. Je dispose maintenant d'un MacBook Pro avec 16 Go de RAM, il m'arrive souvent sous Final Cut ou Aperture de dépasser ces 16 Go, et comme l'a dit Melaure, toute la ram est bien copiée sur le disque pour être nettoyée. A ne pas faire régulièrement sur un SSD...

J'ai une machine Windows avec 16 Go de RAM au boulot, sur laquelle je fais tourner jusqu'à 10 machines virtuelles, quand je ferme toutes ces machines virtuelles, je retrouve ma RAM libérée automatiquement. C'est tout de même lamentable...

Toujours pas de solution "propre" à ce jour. J'ai appelé Apple, ils m'ont dit que leur système gérait la mémoire de cette façon, et que c'était le plus pratique dans la plupart des cas. Discours classique quoi.
 
Après avoir cherché maintes solutions toutes plus inefficaces les unes que les autres.. en parlant bien sûr des logiciels tiers proposés sur le Store ..
.... Il m'est resté qu'effectivement seul la commande purge est assez efficace..
Problème.. devoir garder le terminal dans le doc + agrandir + ECRIRE "purge" + appuyer sur entrée + réduire la fenêtre dans le doc ... etc .. etc .. (mémoire restant très mal gérée comme vous l'avez dit)
SOLUTION : Ouvrir AppleScript ... faites copier-collé de :

do shell script "purge"
quit

Enregistrez en tant qu'application ... changez l'icône comme bon vous semble... la mettre dans le dock.... ET . . . cliquez... ça se lance... ça PURGE ! ... ça se referme...... UN BONHEUR ;) ..
De rien :0) ...
 
Ben il ne faut pas utiliser les OS Apple après 10.6.
Le bug est connu depuis des années, la mémoire est très mal gérée.