Trop de mémoire utilisée


13

Cela fait un moment que je ressens cela, en regardant mentalement le gestionnaire de tâches quant à la quantité de mémoire physique à utiliser et en remarquant une grande disparité. J'ai finalement réussi à le mesurer. Prendre les résultats de la liste des tâches et l'ajouter, a donné environ 3,87 Go. Le gestionnaire de tâches m'a dit que j'utilisais 4,6 Go de mémoire. Cela semble être une grande disparité. Où est-il allé?

EDIT: Donc, c'est clair, il ne va pas faire de prélecture. Il a également été suggéré que sa partie du système d'exploitation, mais ne fait partie d'aucun des processus du système. Si cela est vrai, veuillez trouver un moyen d'obtenir le système d'exploitation pour me dire combien de mémoire est utilisée. Puisque je veux savoir où est passé le souvenir, me demander de regarder la différence ne fait rien pour moi.

EDIT 2: Ce n'est pas le suivant:

  1. Le noyau
  2. Le cache
  3. Mémoire réservée au matériel

Image des ressources utilisées. Je ne sais pas trop ce que ça va faire mais ... entrez la description de l'image ici


Quel système d'exploitation utilisez-vous? Vous obtiendrez de meilleures réponses avec plus d' informations :)
Cam Jackson


@soandos: Avez-vous essayé de désactiver la super-extraction et le redémarrage? Est-ce que cela fait une différence?
user541686

Oui, je l'ai fait et non, mais ce serait aussi bien de savoir combien de mémoire la prélecture prend.
soandos

2
Le prefetch n'utilise PAS de mémoire, il met en cache le bytecode le plus utilisé des applications compilées. Ne le désactivez pas ou les performances de votre système chuteront considérablement.
Percée le

Réponses:


5

Je suggère de télécharger la suite Sysinternals de Microsoft . Il comprend plusieurs utilitaires qui vous donneront plus d'informations que le Gestionnaire des tâches. Jetez un œil aux utilitaires Process Explorer, RAMMap, VMMap et Process Monitor. Pour obtenir le plus d'informations de leur part, vous devrez peut-être effectuer une configuration pour modifier les informations affichées.

De plus, comme vous êtes intéressé par la mémoire de Windows, voici une série de billets de blog de Mark Russinovich , l'un des développeurs / fondateurs de Sysinternals. Cela aidera à comprendre les informations fournies par les utilitaires.


RAMMap semble me dire que le gestionnaire de tâches surestime l'utilisation totale du RAM d'environ 100 Mo, mais selon la liste de mémoire que je peux extraire en utilisant la liste des tâches, RAMMap surestime également d'environ 200 Mo (liste des tâches +200 = RAMMap, RAMMap + 100 = taskmanger)
soandos

1
Je ne suis pas sûr de ce que vous voyez, et je ne suis pas sur une machine Windows pour l'examiner. Cependant, si vous voulez toujours creuser plus profondément, demandez sur les forums Sysinternals. Il y a des gens très intelligents qui sont très "branchés" sur les internes de Windows. Ils seront plus familiers avec les subtilités de la gestion de la mémoire Windows.
Joe Internet

Pour référence future, voici les discussions TechEd 2011 de Mark Russinovich sur la gestion de la mémoire Windows: channel9.msdn.com/Events/TechEd/NorthAmerica/…
Joe Internet

Cette "réponse", bien qu'acceptée, ne répond pas à la question! Il suggère simplement des outils et des lectures pour l'enquête.
Jamie Hanrahan

8

Windows 7 utilise de la mémoire «inutilisée» pour mettre en cache les choses afin d'accélérer les choses. Si vous avez besoin de cette mémoire, elle sera libérée.

C'est une fonctionnalité, pas un bug;)

De technet

Après avoir utilisé un système Windows Vista pendant un certain temps, vous verrez un faible nombre pour le compteur de mémoire physique libre sur la page Performances du Gestionnaire des tâches. En effet, SuperFetch et la mise en cache Windows standard utilisent toute la mémoire physique disponible pour mettre en cache les données du disque. Par exemple, lorsque vous démarrez pour la première fois, si vous exécutez immédiatement le Gestionnaire des tâches, vous devez remarquer que la valeur de la mémoire disponible diminue à mesure que le nombre de mémoire en cache augmente. Ou, si vous exécutez un programme gourmand en mémoire, puis le quittez (l'un des «optimiseurs de RAM» gratuits qui alloue de grandes quantités de mémoire puis libère la mémoire fonctionnera), ou copiez simplement un très gros fichier, le numéro gratuit sera augmente et le graphique d'utilisation de la mémoire physique diminue à mesure que le système récupère la mémoire désallouée. Au fil du temps, cependant, SuperFetch repeuple le cache avec les données qui ont été forcées de manquer de mémoire,


1
1) alors pourquoi cela ne figure-t-il pas dans la mémoire de ce processus? 2) comment puis-je savoir que c'est le cas ici?
soandos

je crois que superfetch est sous svchost. Il POURRAIT être compté comme mémoire du noyau. Vous pouvez essayer d'activer et de désactiver SuperFetch pour vérifier.
Journeyman Geek

Ça n'a rien fait.
soandos

La mémoire utilisée par Superfetch est sur la liste des pages de veille et est comptée comme faisant partie de "Disponible". Il n'est pas compté comme "en cours d'utilisation" car il peut être réutilisé (retiré de la liste de veille et mis dans un processus) comme tout le reste de la liste de veille, et tout sur la liste Free et Zero aussi.
Jamie Hanrahan

5

Les chiffres que vous voyez sont totalement imprécis et ne doivent être pris qu'à titre indicatif.

Un système d'exploitation est une entité extrêmement complexe et un programme simple comme Task Manager ne peut jamais totaliser la totalité de l'utilisation, de nombreuses parties de celui-ci sont simplement inaccessibles en mode utilisateur sous lequel il s'exécute. Certains des éléments qui lui sont inaccessibles, ou qui sont simplement impossibles à attribuer à une "tâche", sont les tables de segmentation matérielle, les allocations de mémoire partagée, la mémoire allouée au noyau, les allocations de mémoire de page, la mémoire de périphérique et bien d'autres.

Vous trouverez plus d'explications dans Comment interpréter l'onglet Performances du Gestionnaire des tâches? , mais je choisis de citer cette partie:

Qu'attendez-vous d'un programme qui s'appelle lui-même le "Gestionnaire des tâches"? Il n'y a rien appelé une "tâche" dans le noyau du système d'exploitation - le système d'exploitation a des "processus" et des "threads". DOS avait des "tâches". Le matériel Intel a des structures de «tâches», mais le système d'exploitation ne les utilise pas car il est plus rapide pour lui de le faire lui-même.

Le Gestionnaire des tâches est un très ancien programme Windows, a même des problèmes d'attribution de fonctions aux services, et les chiffres qu'il affiche doivent être pris avec une grande pincée de sel. Il manque probablement de grandes zones de mémoire qu'il ne parvient pas à compter ou à attribuer à une «tâche».


Alors, quel programme dois-je utiliser pour le comprendre? Le gestionnaire de tâches PS a la mémoire du noyau répertoriée.
soandos

1
Il n'y a pas un seul programme qui vous donnera TOUTES les informations. Le Gestionnaire des tâches donnera quelques informations et une approximation, le Gestionnaire de périphériques peut parler de la mémoire de l'appareil, WinObj des objets de mémoire. La meilleure source est le moniteur de ressources, appelé depuis l'onglet Performances du Gestionnaire des tâches (et ailleurs), qui est en fait le remplacement moderne du Gestionnaire des tâches.
harrymc

Le gestionnaire de ressources donne un nombre à moins de 15 du gestionnaire de tâches.
soandos

Ceux-ci ressemblent aux seuls chiffres que vous pouvez obtenir à partir de l'interface Windows. Ils ne sont pas précis, mais sont bien meilleurs que rien. Ils peuvent être utilisés pour le dépannage (ce que je fais beaucoup), mais ne vous attendez pas à ce qu'ils incluent tout.
harrymc

L'idée que le Gestionnaire des tâches est un "très vieux programme Windows" est idiot. Il est mis à jour avec chaque version du système d'exploitation, comme à peu près tout le reste. Quant aux «seuls chiffres que vous pouvez obtenir», n'avez-vous pas utilisé l'Analyseur de performances?
Jamie Hanrahan

3

Comme vous l'avez peut-être remarqué, le Gestionnaire des tâches peut vous donner un aperçu simplifié de la façon dont la plupart des applications affectent votre système, mais laisse beaucoup à désirer. Si vous voulez vraiment creuser dans des caches en RAM, etc., vous devez entrer dans l'Analyseur de performances. Il vous faudra du travail pour créer votre ensemble de compteurs système pour surveiller votre système.

Vous pouvez y arriver en exécutant compmgmt.msc ou une recherche Windows pour "gestion de l'ordinateur" et sur le côté gauche, vous verrez un arbre de performances que vous pouvez développer et creuser.

Voici une référence pour certains des outils disponibles: http://technet.microsoft.com/en-us/library/cc749249.aspx


Alors que je vois que c'est un outil très cool, cela peut faire beaucoup de choses (comme en témoigne le fait qu'il y a une tonne de compteurs sous mémoire, je n'ai aucune idée de ce que je recherche. Des idées?
soandos

De plus, l'option d'ajout de compteur a tendance à rester sur mon écran et je dois changer manuellement la résolution d'avant en arrière pour la corriger (l'actualisation ne fonctionne pas). Ce n'est pas de ta faute, je sais.
soandos

3

La mémoire est probablement utilisée pour le noyau. En utilisant Process Explorer, nous pouvons voir une ventilation beaucoup plus détaillée de la mémoire système:

Informations sur la mémoire du noyau

Ici, j'ai mis en évidence la quantité de mémoire utilisée par le noyau, qui est Paged WS + Nonpaged, soit environ 300 Mo de mémoire. C'est sur un système fraîchement démarré avec juste un navigateur Web et quelques autres applications ouvertes, bien que sous une charge lourde, mon système domestique casse facilement 500 Mo ou même 700 Mo de mémoire du noyau.


J'ai regardé ça, et ça ne donne pas assez. Merci quand même.
soandos

Demandez-vous la différence entre les numéros de validation et de mémoire physique?
Dark Android

Non, je me demande pourquoi lorsque j'exécute différents outils censés m'obtenir les mêmes numéros, j'obtiens des numéros différents.
soandos

2

@soandos, avez-vous pris en compte la quantité de mémoire que la vidéo tire? Il est très possible que la vidéo tire 0,73 Go de RAM. Avez-vous une bonne carte vidéo sur cette machine? Sinon, il utilisera de la RAM comme celle-ci (d'après ce que je sais). Si je me trompe, quelqu'un s'il vous plaît carillon ici, mais je pense que cela pourrait être l'effet de la vidéo tirée de la RAM.


J'ai un Nvidia GTS 360M. Ce n'est pas une excellente carte vidéo, mais elle a un Go de mémoire.
soandos

Quel type de moniteur utilisez-vous avec quelle résolution utilisez-vous? En outre, effectuez-vous des tâches vidéo intensives, comme jouer à des jeux en 1080p? Et quel type de RAM utilisez-vous sur votre carte vidéo (par exemple DDR1, DDR2, DDR3, DDR5)? Je le rechercherais moi-même, mais j'ai essayé avec le modèle de carte vidéo de quelqu'un et j'ai remarqué qu'ils l'ont fait avec différents types de RAM ...
David

Standard avec l'ordinateur, 1920x1080, aucune idée. Existe-t-il un moyen de mesurer cela?
soandos

Normalement, il est dit sur l'emballage, je ne suis pas sûr. Si vous connaissez ce modèle de carte exact, vous pouvez le découvrir sur Internet. Si ce n'est pas une carte vidéo très puissante (en utilisant DDR2, DDR1) et que vous utilisez 1920x1080 avec un grand moniteur (par exemple, j'utilise un téléviseur TOC Samsung de 46 pouces comme moniteur à la maison), vous pouvez graver un beaucoup de mémoire juste sur la vidéo ... Je ne sais pas s'il y a un moyen de voir combien de RAM votre vidéo consomme. Je ferai des recherches à ce sujet tout de suite. Je veux vous aider autant que possible.
David

Je vérifie actuellement ce programme pour voir s'il pourrait avoir ce que nous recherchons. Il s'agit de SiSoftware Sandra Lite 2011.2.17.47. La description indique qu'elle fait ce que nous recherchons, comme la quantité de RAM que la vidéo consomme.
David

1

Je pense que la différence que vous voyez n'est pas due au fait que les outils ne peuvent pas voir la mémoire utilisée, mais plutôt à cause de différentes formes de mesure. Je ne peux pas l'expliquer très bien, mais heureusement, je n'ai pas à le faire, Mark Russinovich de Sysinternals fame a écrit une très bonne série de publications concernant les performances des processus dans Windows. Les parties sur la mémoire physique et la mémoire virtuelle devraient expliquer ce que vous voyez.


Non, ce n'est pas le problème. Je suis plus préoccupé par le montant total que par où il est stocké (RAM ou HD).
soandos

0

Je pense que je l'ai résolu!

Je suis juste tombé sur une astuce sur RAMMap et il s'est avéré que c'est µTorrent!

Pas utorrent.exelui-même, mais des fichiers partagés par µTorrent - du moins dans mon cas: l'un des fichiers utilisait plus de 600 Mo, et un autre plus de 200 Mo, etc.


-1

Une partie de la mémoire est utilisée comme cache. Dès que vous avez besoin de cette mémoire, elle est automatiquement libérée. Donc, ne vous inquiétez pas.


-1 Ce n'est pas le cache car c'est 1) compté séparément, 2) facilement pris en compte.
soandos
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.