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_Dirtyla quantité de mémoire partagée avec d'autres processus? Donc, c'est comme RSS partagé?
Est-ce que Private_Clean+ est Private_Dirtyla 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_Dirtypour 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_Dirtyentré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.