Octets privés vs postes de travail dans l'Explorateur de processus

39

Je sais que l'ensemble de travail est la quantité réelle de mémoire utilisée par le processus et que les octets privés sont la quantité mise de côté au cas où il en aurait besoin de plus.

J'ajouterais donc les deux pour déterminer la quantité de mémoire réellement RETIRÉE des autres processus du système.

Scandaliste
la source

Réponses:

52

J'ai bien peur que ce ne soit pas si simple. En particulier, les octets privés ne sont pas très utiles pour répondre à la question que vous posez.

La première chose à garder à l'esprit est qu'une page de mémoire peut exister dans la mémoire principale ou dans une mémoire de stockage externe (de nos jours, la "pagination de disque" ou "swap"). La seconde est qu'un processus aura des pages privées de mémoire dans son empreinte, mais utilisera également des objets dans des pages partagées, que d'autres processus utilisent en même temps.

Jeu de travail est la taille des pages appartenant au processus, qui sont actuellement stockées dans la mémoire principale. Lorsqu'une page de mémoire utilisée par un processus est déplacée vers le fichier de page, elle est supprimée de la métrique d'ensemble de travail et, lorsqu'elle est rappelée dans la mémoire principale, elle est de nouveau ajoutée.

L'ensemble de travail ne fait toutefois pas exclusivement référence à la mémoire de votre processus. les processus utilisent de nombreux objets de mémoire partagée, et la taille de ces objets est reflétée dans la statistique. malheureusement, lorsque deux processus partagent un objet de 1 Mo, ils affichent une allocation de 1 Mo dans l'ensemble de travail. Par conséquent, si vous additionnez tous les ensembles de travail, l'objet de 1 Mo sera enregistré deux fois. Par conséquent, l'accumulation de toutes les tailles de votre ensemble de travail peut dans les cas extrêmes, semblent dépasser la taille du bélier disponible. voir plus ici: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Octets privés fait référence à la quantité d'espace de fichier de page allouée au processus (pas nécessairement utilisée) dans le cas où l'empreinte de mémoire privée du processus est complètement paginée pour être échangée. la plupart du temps, le processus n'est pas entièrement (ou pas du tout) résident dans un fichier de page, c'est pourquoi les octets privés semblent avoir "de la place" pour une allocation supplémentaire. Ce n'est cependant pas le cas.

Les octets privés ne font toutefois référence qu'à la mémoire privée du processus. Cette valeur peut donc ne pas refléter les ressources partagées (même si la ressource partagée est uniquement utilisée par ce processus à l'heure actuelle).

"Working set Private" ("WS Private Bytes" ou "Private WS" dans l'explorateur de processus selon la version) est probablement la meilleure mesure à utiliser. il ne se préoccupe pas du fichier de page, vous obtenez ainsi une représentation précise de l'impact des processus sur votre RAM physique et ne compte pas deux fois les objets partagés. Les objets partagés sont comptés une fois (uniquement pour le processus qui les a créés), mais cela signifie également que, d'un point de vue de processus unique, vous n'enregistrez pas que votre processus utilise des objets partagés créés par un autre processus. Votre processus peut donc utiliser davantage de mémoire vive sur un autre. machine ou dans une situation où il était nécessaire de créer l'objet partagé lui-même au lieu d'utiliser une autre instance de processus de celui-ci. Le gestionnaire de tâches Windows utilise le groupe de travail privé comme métrique d'utilisation de la mémoire.

J'espère que ça t'as aidé

Frank Thomas
la source
1
Donc, aurais-je raison de dire que "octets privés" est la quantité de mémoire demandée par le processus et que "jeu de travail" correspond aux octets privés plus un peu de mémoire partagée supplémentaire que d'autres processus peuvent utiliser? Et aussi, "Private Working Set" est la quantité de mémoire privée actuellement dans la RAM physique, qui est la représentation la plus précise de la quantité de mémoire réellement utilisée?
Scandaliste
4
Ouais assez bien. Si vous êtes inquiet au sujet de la série de travail privée avec RAM libre, c'est la voie à suivre. si vous êtes inquiet au sujet du fichier de page ou de la validation complète (octets privés + mémoire virtuelle), c'est une bonne mesure.
Frank Thomas
"Octets privés" est l'espace d'adressage virtuel privé engagé du processus. Certaines de ces informations peuvent se trouver dans le fichier d'échange, certaines dans la RAM, d'autres aux deux endroits, et certaines d'entre elles - peut-être même la majeure partie - peuvent ne pas avoir (encore) de stockage physique. Il s’agit de la contribution du processus à la "commission d’enregistrement" globale du système. Le "groupe de travail privé" est le sous-ensemble de "octets privés" qui se trouve dans la RAM. nb: Vous ne trouverez pas de "octets privés" ou quoi que ce soit dans les écrans de RAMmap, car RAMmap ne concerne que la mémoire physique (RAM) et non virtuelle.
Jamie Hanrahan