22 votes

Qu'est-ce que cela signifie si j'ai beaucoup de mémoire "inactive" à la fin d'une journée de travail ?

Après une journée de travail sur mon MacBook Pro sous Mac OS X 10.6.5, le moniteur d'activité montre que la majorité des 8 Go de mémoire de mon ordinateur est "inactive" et que seule une petite partie du graphique circulaire est "libre". Et ce, même si j'ai fermé toutes les applications et que seul le Finder fonctionne.

Qu'est-ce que cela signifie ? La mémoire "inactive" est-elle occupée par quelque chose ? Ou est-elle en fait toujours disponible pour les applications ? Merci.

29voto

mipadi Points 2272

OS X, comme la plupart des systèmes d'exploitation modernes, utilise une mémoire virtuelle système de gestion de la mémoire. Cela permet, entre autres, au système d'exploitation de considérer l'ordinateur comme ayant une réserve de mémoire illimitée. Pour ce faire, le système d'exploitation met en page les parties inutilisées de la RAM sur un disque connu sous le nom de "mémoire vive". fichier d'échange .

Bien sûr, la RAM n'est pas illimitée, c'est pourquoi OS X la regroupe en quatre catégories : câblée, active, inactive et libre. Câblé est requise par le système d'exploitation, et ne peut jamais être paginée hors de la mémoire. Actif La mémoire est la mémoire utilisée par les programmes en cours d'exécution. Inactif la mémoire a été utilisée récemment par des programmes qui sont maintenant terminés (ou qui n'ont pas été utilisés depuis longtemps). Gratuit La mémoire vive est, comme son nom l'indique, la RAM qui n'est pas utilisée.

Lorsque vous lancez un programme, il est chargé dans la mémoire active. En revanche, lorsque vous quittez un programme, il n'est pas supprimé de la RAM, mais placé en mémoire inactive. C'est pourquoi il est souvent plus rapide de relancer un programme - il est toujours en RAM (essayez avec un gros programme comme Firefox).

Une fois que toute votre mémoire est utilisée (la mémoire libre est égale à 0), le système d'exploitation écrira la mémoire inactive dans le fichier d'échange pour faire plus de place dans la mémoire active.

Si un programme est paginé vers le fichier d'échange, et que vous le relancez, il sera tiré du fichier d'échange vers la mémoire active.

En résumé, vous ne devriez pas vous soucier d'un manque de mémoire libre. En fait, vous voulez qu'elle soit faible -- la mémoire libre est de la mémoire gaspillée (puisque le système d'exploitation ne l'utilise pas pour quoi que ce soit).

Lorsque vous examinez la quantité de mémoire utilisée par votre ordinateur, vous devez surtout prêter attention aux éléments suivants Swap utilisé qui vous indique la taille du fichier d'échange de la mémoire virtuelle, et Page ins qui indique la fréquence à laquelle le système d'exploitation doit transférer la mémoire du fichier d'échange vers la mémoire active.

9voto

Shuft Points 420

Ce n'est probablement pas un problème, et en fait, cela peut accélérer votre ordinateur.

Tous (la plupart ?) les systèmes d'exploitation utilisent un cache de disque, qui stocke en mémoire certains fichiers récemment accédés afin d'accélérer les accès répétés à ces fichiers. Le cache disque sous OS X est de taille variable, et apparaîtra comme de la "mémoire inactive" en cours d'utilisation.

Si un programme a besoin de plus de mémoire, OS X effacera une partie du cache du disque (les fichiers les moins récemment utilisés) pour permettre au programme de s'exécuter/se développer.

Je constate que si je fais beaucoup de compilation ou de tri de photos (c'est-à-dire si j'accède à des milliers de fichiers à la suite), le cache du disque s'agrandit et utilise beaucoup de mémoire inactive. S'il ne s'agit que de ce cache disque, il n'y a pas lieu de s'inquiéter.

S'il s'agit d'un processus ou d'une application en arrière-plan dont l'utilisation de la mémoire augmente (mais dont les pages sont marquées comme inactives), vous pouvez le savoir en vérifiant si des programmes ont une utilisation très élevée de la "mémoire réelle" dans le moniteur d'activité. S'il n'y a rien d'évident (c'est-à-dire que le total est bien inférieur à 8 Go), il s'agit du cache des fichiers.

Vous devriez voir qu'il y a peu ou pas d'utilisation de Swap, et si vous ouvrez un programme gourmand en mémoire, la quantité de mémoire inactive diminuera sans avoir à faire de swap vers le disque.

(Je crois qu'il y avait un bogue dans 10.4 ou 10.5 pendant un certain temps où il ne libérait pas toujours cette mémoire de manière très efficace, et causait du swapping malgré un cache disque important, mais d'après mon expérience, cela semble résolu dans 10.6).

3voto

trent Points 3094

La mémoire "inactive" peut être utilisée par d'autres programmes. Elle ne fait que mettre en cache les programmes ou les données que vous avez récemment utilisés, au cas où vous en auriez à nouveau besoin. Si vous lancez d'autres programmes ou si vous avez besoin d'autres données, la mémoire cache sera effacée et mise à la disposition de votre nouvelle charge de travail selon les besoins.

C'est la théorie, en tout cas, et je la crois solide. Cependant, j'ai trouvé cette référence à un utilitaire de "purge" que quelqu'un a écrit parce qu'il ne pensait pas que la mémoire inactive était libérée assez rapidement.

Pour la documentation officielle sur le sujet, lisez ceci (et recherchez "inactif").

1voto

egremyl Points 19

À partir de OS X 10.5, il y a des problèmes évidents de gestion de la mémoire dans MAC OS X.

J'ai finalement réussi à reproduire le scénario problématique, j'ai donc lancé le test et enregistré l'écran, en vidéo.

Problème de performance de MAC OS X Lion - gestion de la mémoire défaillante

Je lance la commande tar+bzip, qui est un truc unix de base, sur la grande quantité de fichiers images, dans mon dossier Pictures/. Juste avant le démarrage, j'exécute la commande "purge", pour supprimer les données inactives/cachées du programme.

Vous pouvez voir sur la vidéo que la mémoire libre commence à diminuer très rapidement, et que la mémoire inactive augmente constamment. Si vous regardez la commande "bsdtar", elle ne prend qu'un fragment de RAM, donc le problème n'est pas dans ce processus. Vous ne pouvez pas dire qu'il s'agit d'une fuite de mémoire de programme, car alors le problème ne serait pas dans la RAM inactive, mais plutôt dans la RAM active/câblée.

Quand la mémoire libre est descendue en dessous de 100mb, j'ai lancé quelques applications, comme Safari, iPhoto et MS Word, et vous pouvez voir dans la vidéo, qu'il faut même des minutes pour lancer une application, alors que normalement (quand il y a de la RAM libre), cela prendrait 3-5 secondes pour charger.

J'exécute le même scénario et les mêmes commandes sur ma boîte Linux Centos 6, pas de problème ! L'utilisation de la mémoire est d'environ 10-20mb, pas de problèmes avec le cache/buffer.

La gestion de la mémoire doit être très défaillante dans Mac OS X !

0voto

webbglider Points 1

Cette discussion n'a de sens que si l'affirmation selon laquelle "votre ordinateur fonctionne plus vite lorsque la mémoire libre est faible" était vraie. À moins que mon Mac de bureau ne soit câblé bizarrement, à la minute où ma mémoire libre (surveillée) commence à être faible, le programme que je suis en train d'exécuter à ce moment-là commence à s'enliser au point où je ne peux rien faire jusqu'à ce qu'il remonte de lui-même ou par mon intervention de la mémoire libre. J'ai un iMac 2118 (2006 ou plus récent) qui a une capacité maximale de 3 Go de RAM et j'essaie de la gérer quand je peux, mais c'est très frustrant. Avez-vous des idées ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X