Pour un processus donné dans /proc/<pid>/smaps
, pour une entrée de mappage donnée, quels sont:
- Shared_Clean
- Shared_Dirty
- Private_Clean
- Private_Dirty
Est-ce que Shared_Clean
+ Shared_Dirty
la quantité de mémoire partagée avec d'autres processus? Donc, c'est comme RSS partagé?
Est-ce que Private_Clean
+ est Private_Dirty
la quantité de mémoire disponible pour un seul processus ? Donc, c'est comme RSS privé?
La valeur de PSS = PrivateRSS + (SharedRSS / nombre de processus la partageant)?
Quelques questions supplémentaires après avoir lu ce lien: LWN
Parlons maintenant du processus dans son ensemble, dont nous examinons l'entrée smaps.
J'ai remarqué que si je fais Shared_Clean
+ Shared_Dirty
+ Private_Clean
+ Private_Dirty
pour chaque entrée smaps pour le processus, je reçois le RSS du processus tel que rapporté par ps
, ce qui est plutôt cool. Par exemple
ps -p $$ -o pid,rss
Me donner (environ) même valeur pour rss comme la somme de tous Shared_Clean
, Shared_Dirty
, Private_Clean
, Private_Dirty
entrée dans / proc / $$ / smaps.
Mais qu'en est-il des PSS pour l'ensemble du processus? Ainsi, à partir de l'exemple ci-dessus, comment puis-je obtenir le PSS pour $$? Puis-je simplement ajouter l'entrée PSS pour chaque mappage de smaps et arriver à PSS pour $$?
Et qu'en est-il de l'USS pour l'ensemble du processus? En reprenant l'exemple ci-dessus, je suppose que je peux arriver à l'USS pour $$ en résumant uniquement les entrées Private_ * pour chaque entrée smaps pour $$ .. n'est-ce pas?
Remarques:
PSS = Taille du jeu proportionnel.
USS = Taille de jeu unique.