Para un proceso dado en /proc/<pid>/smaps, para una entrada de mapeo dada, cuáles son:
- Shared_Clean
- Shared_Dirty
- Private_Clean
- Private_Dirty
¿Es Shared_Clean+ Shared_Dirtyla cantidad de memoria que se comparte con otros procesos? Entonces, ¿es como RSS compartido?
De manera similar, ¿es Private_Clean+ Private_Dirtyla cantidad de memoria disponible para un solo proceso ? Entonces, ¿es como RSS privado?
¿Es el valor PSS = PrivateRSS + (SharedRSS / número de procesos que lo comparten)?
Algunas preguntas más después de leer este enlace: LWN
Ahora hablemos sobre el proceso en su conjunto, cuya entrada de smaps estamos viendo.
Me di cuenta de que si hago Shared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirtypara cada entrada de smaps para el proceso, obtengo el RSS del proceso según lo informado ps, lo cual es bastante bueno. Por ej.
ps -p $$ -o pid,rss
Me dará la (aprox) mismo valor para RSS como la suma de todos Shared_Clean, Shared_Dirty, Private_Clean, Private_Dirtyentrada en / proc / $$ / smaps.
Pero, ¿qué pasa con PSS para todo el proceso? Entonces, en el ejemplo anterior, ¿cómo obtengo el PSS para $$? ¿Puedo agregar la entrada de PSS para cada mapeo de smaps y llegar a PSS por $$?
¿Y qué hay de USS para todo el proceso? Una vez más, tomando el ejemplo anterior, supongo que puedo llegar al USS para $$ sumando solo las entradas Private_ * para cada entrada de smaps para $$ .. ¿verdad?
Notas: 
PSS = Tamaño de conjunto proporcional. 
USS = Tamaño de conjunto único.
fuente

Shared_Dirty, ¿podría aclarar su pregunta?