Ich konnte die Nutzung des nicht gemeinsam genutzten Speichers berechnen, indem ich anonyme und Stapelzuordnungen summierte, pmap -x
beispielsweise
sudo pmap -x $THE_PID |egrep 'anon|stack' | awk '{print $2}' | paste -sd+ | bc
aber ich kann ps
überhaupt keine Möglichkeit finden, ähnliche Informationen zu erhalten. top
zeigt eine SHR
Spalte an, bietet aber anscheinend keine Möglichkeit, nach NICHT freigegebenem Speicher zu sortieren. Das Sortieren nach RSS ist nicht sinnvoll, da RSS freigegebene Seiten enthält, aber meines Wissens nach nur die freigegebenen Seiten, die der Prozess berührt hat.
Wenn Sie also zwei Prozesse haben, die beide denselben gemeinsam genutzten Adressraum von 16 GB verwenden, werden sie danach sortiert, welcher mehr vom gemeinsam genutzten Speicher verwendet hat. Nicht danach, welcher mehr privaten (nicht gemeinsam genutzten) Speicher zugewiesen hat, es sei denn, beide haben dieselbe oder eine annähernd gleiche Menge an Shmem verwendet.
Ähnliche Probleme treten bei Lese-/Schreibzuordnungen gemeinsam genutzter Bibliotheken und bei fork
„ed-but-not exec
-d“-Prozessen auf, die Copy-on-Write-Seiten von ihrem Vorgänger gemeinsam nutzen.
Das ist ... nicht hilfreich.
Ich habe nach Möglichkeiten gesucht, top
die Ausgabe nach Ausdrücken zu sortieren. Aber ob dies in der Sortiersyntax unterstützt wird, kann ich nicht herausfinden.
Dies scheint so offensichtlich, aber PS gibt die freigegebenen Informationen überhaupt nicht preis!
Bitte sagen Sie mir, dass ich etwas übersehe.