web-dev-qa-db-fra.com

Comment trouver ce qui consume toute la mémoire de mon système? (pas SuperFetch)

Comment diagnostiquer/découvrir des problèmes liés à la mémoire si Task Manager semble ne pas signaler correctement?

Je dois avoir une fuite de mémoire ou quelque chose comme ça: je n'utilise que 75% de mes 12 Go de mémoire, mais la liste des gestionnaires de tâches qui utilisent la mémoire des processus ne s'additionne pas (oui, "Afficher les processus de tous les utilisateurs" est cochée ).

Il semble que l’utilisation de la mémoire "fantôme" augmente en fonction du temps depuis lequel le système est en fonctionnement. Cela montre qu'il y a 118 processus au total. Outre le top 5, ils ont tous une taille inférieure à 50 Mo.

Le processus en haut est firefox, utilisant 2,6 Go. Adobe Premiere à 900 MB. Conteneur de plugins à 300 MB. Lune pâle à 275 MB. Explorer.exe à 94 MB.

Comment dans le monde puis-je trouver ce qui utilise le reste de ma mémoire? Il semble que le Gestionnaire des tâches ne voit pas tout ce qui est utilisé. Peut-être y a-t-il une sorte de fuite de mémoire? Ou programme ne libère pas correctement la mémoire utilisée?

Rapports du moniteur de ressources (cliquez pour agrandir):

 Resource Monitor Printout

REMARQUE:

  1. Comme mon lecteur principal de système d'exploitation est un SSD, SuperFetch est désactivé sur mon système.
  2. Et je comprends que le principe selon lequel un bélier inutilisé est un "bélier", pour ainsi dire. Cependant, lorsque je constate que mon utilisation de la mémoire est presque utilisée au maximum de sa capacité, cela m’empêche d’exécuter/de charger des programmes ultérieurs (de mon propre chef), et m’envoie même une tâche pour en fermer beaucoup (avec à peine un effet réduit sur l’utilisation de la mémoire, au moins sensiblement et dans un court laps de temps).
  3. Quand la mémoire est pleine, je déteste voir le fichier de 1 Go sur mon SSD augmenter à la limite de 6 Go que j'ai définie, et me "transpirer" en sachant que mon "mauvais" SSD est probablement en train d'être réduit en poussière sous Windows/se tourne brusquement vers son utilisation en tant que clé de mémoire à part entière. (Sur cette note, devrais-je simplement caler le fichier d'échange sur un fichier statique de 1 Go?)
61
Coldblackice

Vous pouvez généralement mieux comprendre l’utilisation de votre mémoire avec des outils tels que RamMap .

 enter image description herecliquez pour agrandir

Souvent, la mémoire peut être utilisée par des fichiers mappés en mémoire qui ont été extraits dans RAM pour améliorer les performances.

Prenez note de la colonne Active dans RamMap. C’est la mémoire actuellement utilisée. Les indicateurs concernant la mémoire libre peuvent souvent être trompeurs. Cela inclut des outils Windows tels que le gestionnaire de tâches.

Plus d'informations


Je voulais aussi aborder quelques points supplémentaires de votre question.

Cependant, lorsque je constate que mon utilisation de la mémoire est presque utilisée au maximum de sa capacité, cela m’empêche d’exécuter/de charger des programmes ultérieurs (de mon propre chef), et m’envoie même une tâche pour en fermer beaucoup (avec à peine un effet réduit sur l’utilisation de la mémoire, au moins sensiblement et dans un court laps de temps).

Votre raisonnement va parfaitement bien. Toutefois, à moins que vous ne rencontriez des problèmes liés à une mémoire insuffisante, évitez cette pratique. Le système d'exploitation doit gérer cette tâche et vider les données du fichier d'échange si une mémoire physique est requise.

Vous utilisez peut-être également le mauvais indicateur pour votre pratique. Vous voulez surveiller votre Commit Charge ( Process Explorer terminology).

enter image description here

La charge de validation est la somme de toute la mémoire utilisée. Vous pouvez voir dans la capture d'écran, il y a aussi une limite à cela. Cette limite est la taille de ma mémoire physique + la taille de mon fichier de pagination. Si cette limite devait être atteinte, ce serait un problème.

Ce qui nous amène à notre prochain sujet.

Quand la mémoire est pleine, je déteste voir le fichier de 1 Go sur mon SSD augmenter à la limite de 6 Go que j'ai définie, et me "transpirer" en sachant que mon "mauvais" SSD est probablement en train d'être réduit en poussière sous Windows/se tourne brusquement vers son utilisation en tant que clé de mémoire à part entière. (Sur cette note, devrais-je simplement caler le fichier de page sur une taille de 1 Go?)

À mon avis, il y a plusieurs choses qui ne vont pas ici. En général, il est fortement déconseillé de définir des limites pour la taille du fichier de pagination. Mark Russinovich explique cela dans les vidéos que j'ai liées ci-dessus (bien mieux que je n'aurais pu le faire).

Seules les mauvaises choses peuvent en découler. Qu'est-ce que Windows est censé faire lorsqu'il doit vider plus de 6 Go de données dans le fichier d'échange, mais que vous l'avez limité à 6 Go? Ce est un problème majeur.

Laissez Windows gérer le fichier de pagination. La seule chose que je vous conseillerais fortement de faire est de déplacer le fichier de pagination de votre SSD. Tom Wijsman l'explique très bien dans son billet de blog Maximiser la durée de vie de votre disque SSD , que je vous recommande de lire.

57
Der Hochstapler

Dans mon cas, l'utilisation de la mémoire haute s'expliquait par une machine virtuelle hyper-v pour laquelle les paramètres de mémoire dynamique étaient activés pour la RAM.

RamMap outil m'a aidé à localiser la cause.

Tout d'abord, j'ai remarqué dans RamMap que Driver Locked consommait plus de 29 Go de mémoire vive de 32 Go. Ensuite, j'ai trouvé un article expliquant que l'utilisation de la mémoire dynamique HyperV activée peut entraîner une utilisation intensive de la mémoire par le pilote, ce que je viens de confirmer.

1
Dragan Nikolic

Si vous voyez que la capture ne montre pas tout le processus et que le processus affiché prend lui-même 5,8 Go de mémoire. de la photo montre il montre qu'il y a beaucoup de programmes d'arrière-plan inutiles sont en cours d'exécution. En utilisant msconfig, supprimez les programmes de démarrage inutiles et augmentez également votre mémoire virtuelle (1,5 fois votre mémoire physique).

0
tiki

Vous pouvez essayer RAMMAP de Sysinternal, mais il montre l'utilisation de la mémoire d'une manière différente de celle de Task Manager & Resource Manager et n'est donc pas très utile.

Le Gestionnaire des tâches et le Moniteur de ressources n'affichent ni le fichier de cache ni sa taille. Cela fait partie de la partie "en cours d'utilisation" de la mémoire (voir Moniteur de ressources). Le cache de fichiers peut atteindre une très grande taille, en particulier lorsque l'ordinateur est utilisé pendant des heures. L'utilisation globale de la mémoire du programme augmente avec le temps, en raison de la croissance du cache de fichiers et des fuites de mémoire. Certains programmes ont simplement une gestion de mémoire moche.

Une façon de minimiser l'utilisation de la mémoire consiste à réduire le nombre de processus. (Pourquoi les processus 118 sont-ils en cours d'exécution? Pourquoi plusieurs instances de Explorer.exe sont-elles en cours d'exécution?)

Il existe un programme qui vous aide à réduire régulièrement l'utilisation de la mémoire et à réduire régulièrement le cache de fichiers. (CLEANMEM de PcWinTech). Cette réduction de l'utilisation de la mémoire réduit également, voire élimine, le besoin pour Windows d'écrire des données provenant de la mémoire dans le fichier d'échange (sur votre disque SSD). Cela augmente donc la durée de vie de votre disque SSD. En réduisant l'utilisation de la mémoire, vous disposez également d'une plus grande quantité de mémoire «en attente», ce qui permet à Windows de précharger davantage de fichiers dans la mémoire en attente, ce qui accélère votre système.

0
Willy2

RAMMap a montré que le fichier mappé par C:\Windows\SoftwareDistribution\DataStore\DataStore.edb gaspillait 400 Mo de ma précieuse mémoire vive de 4 Gb.

De plus, Windows Update ralentissait constamment le système en cours de mise à jour de cet énorme fichier.

Cela peut être un problème courant pour de nombreux ordinateurs bas de gamme.

Voir PC Boots écrit ensuite un fichier géant datastore.edb ralentissant l’ordinateur pour une résolution éventuelle.

0
Vadzim