139 votes

Pourquoi l'utilisation totale de la mémoire indiquée par le gestionnaire des tâches de Windows est-elle beaucoup plus élevée que la somme de l'utilisation de la mémoire de tous les processus ?

Le Gestionnaire des tâches affiche une utilisation totale de la mémoire de 90 % de mes 6 Go, mais aucun processus n'utilise plus de 250 Mo de RAM, et la somme de l'utilisation de la RAM de tous les processus en cours est inférieure à 2 Go. J'ai essayé :

  • En regardant les chiffres de la colonne "Mémoire" de l'onglet "Processus" du gestionnaire des tâches de Windows 8.
  • En regardant les colonnes "Working Set", "Private Working Set", "Shared Working Set", et "commit Size" dans l'onglet "Details" du Gestionnaire des tâches.
  • En regardant des colonnes similaires liées à la mémoire dans Process Explorer.
  • J'ai essayé de lancer Sysinternals RAMMap, mais pendant que je fais une crise de mémoire faible, il se plante au lancement. Une fois que j'ai résolu le problème, RAMMap fonctionne normalement, mais à ce moment-là, il est trop tard.

Tous montrent qu'une quantité assez faible de mémoire est utilisée.

De nombreuses personnes posent des variantes de cette question, avec différentes versions de Windows, partout sur Internet. Certaines d'entre elles parviennent à résoudre leurs problèmes de faible mémoire, souvent en réinstallant des logiciels, parfois en réinstallant Windows depuis le début. Je cherche une réponse aux questions générales qu'ils partagent tous, et qui ne semblent jamais trouver de réponse ailleurs :

  1. Pourquoi la mémoire totale utilisée est-elle beaucoup plus élevée que la mémoire utilisée par tous les processus répertoriés, quelle que soit la façon dont j'essaie de les compter ?
  2. Comment Windows pourrait-il "savoir" que la mémoire est utilisée sans savoir quel programme l'utilise ?
  3. Quels processus pourraient éventuellement utiliser de la mémoire mais ne pas apparaître dans la liste ?
  4. Existe-t-il un logiciel qui puisse donner plus d'informations sur la mémoire utilisée ?

Détails spécifiques à mon propre problème : Depuis la mise à niveau vers Windows 8.1, le problème survient dès que je me connecte. Je manque de mémoire dès que je lance un programme. J'ai remarqué dans l'Explorateur de processus que plusieurs instances de iexplore.exe étaient en cours d'exécution, apparemment lancées automatiquement. Une instance en particulier n'utilisait que quelques Mo de RAM, mais affichait des centaines de millions de défauts de page. Sur un coup de tête, j'ai tué ce processus spécifique, et l'utilisation de la mémoire a immédiatement chuté de 70 %.

Ce qui nous amène à une question spécifique :

  • Comment le fait de tuer un processus qui n'utilisait soi-disant que quelques Mo pourrait-il libérer plusieurs Go ?

Et une question bonus (vraisemblablement difficile) :

  • À défaut de réinstaller Windows, comment pourrais-je éviter de devoir passer par là à chaque fois que je redémarre mon ordinateur ?

5voto

David Schwartz Points 60868

À propos, vous devriez essayer de ne pas utiliser le terme "mémoire". Il crée beaucoup de confusion. Si vous voulez parler de mémoire physique, dites "mémoire physique", ou "RAM". Si vous voulez parler de mémoire virtuelle, dites-le. Si vous voulez parler de backing store, dites-le.

Pourquoi la mémoire totale utilisée est-elle beaucoup plus élevée que la mémoire utilisée par tous les processus répertoriés, quelle que soit la façon dont j'essaie de les compter ?

Parce que le système d'exploitation ne gaspille pas la mémoire physique (RAM), sauf s'il n'a pas le choix.

Comment Windows pourrait-il "savoir" que la mémoire est utilisée sans savoir quel programme l'utilise ?

Parce qu'aucun programme ne l'utilise. Considérez, par exemple, la mémoire qui contient le code d'un programme qui vient de se terminer. Aucun programme ne l'utilise. Mais cette mémoire est utilisée, car elle n'est pas libre et contient des données qui pourraient être utiles (au cas où le programme s'exécuterait à nouveau).

Quels processus pourraient éventuellement utiliser de la mémoire mais apparaissent maintenant dans la liste ?

Il n'est pas utilisé par les processus.

Existe-t-il un logiciel qui puisse donner plus d'informations sur la mémoire utilisée ?

RAMMap peut le faire.

Il n'y a que deux possibilités, la RAM peut être utilisée ou gaspillée. Évidemment, la première est la meilleure. Toute mémoire libre est gaspillée à jamais - une machine de 4 Go ne peut pas utiliser 2 Go aujourd'hui pour utiliser 6 Go demain. Si vous pensez "Je veux qu'elle soit libre maintenant pour pouvoir l'utiliser plus tard", oubliez ça. Vous pouvez l'utiliser maintenant y l'utiliser plus tard.

Comment le fait de tuer un processus qui n'utilisait soi-disant que quelques Mo pourrait-il libérer plusieurs Go ?

Vous êtes à court de mémoire de sauvegarde, pas de mémoire physique. Vous avez beaucoup de mémoire physique libre mais pas assez de mémoire de sauvegarde pour que le système d'exploitation continue à allouer de la mémoire virtuelle qui pourrait nécessiter une sauvegarde.

Le processus n'utilisait que quelques Mo de mémoire physique, mais le système d'exploitation a peut-être dû lui réserver plusieurs Go de mémoire virtuelle sauvegardée. Par exemple, supposons qu'un processus crée un mappage de mémoire privée et inscriptible d'un fichier de 2 Go. Le système d'exploitation doit réserver 2 Go de mémoire virtuelle sauvegardée pour le processus, car il pourrait écrire dans chaque octet de ce mappage. Il se peut aussi qu'il n'écrive jamais sur aucun d'entre eux. C'est pourquoi vous avez besoin d'un fichier de pagination de bonne taille.

Les systèmes d'exploitation modernes émettent de nombreux chèques (promettant de stocker des données) qui ne seront jamais encaissés (nécessitant de la mémoire vive). Vous ne pouvez pas continuer à faire des chèques (en promettant du backing store) même si vous avez beaucoup d'argent en banque (RAM libre) si vous avez déjà fait un tas de gros chèques qui pourraient ou non être encaissés (en promettant autant de backing store que vous avez). Les fichiers de pagination ajoutent du backing store, permettant au système d'exploitation de continuer à faire des chèques.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X