Gibt es eine Möglichkeit, Prozesse nach NICHT gemeinsam genutztem (privatem) Speicherverbrauch in ps oder top zu sortieren?

Gibt es eine Möglichkeit, Prozesse nach NICHT gemeinsam genutztem (privatem) Speicherverbrauch in ps oder top zu sortieren?

Ich konnte die Nutzung des nicht gemeinsam genutzten Speichers berechnen, indem ich anonyme und Stapelzuordnungen summierte, pmap -xbeispielsweise

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. topzeigt eine SHRSpalte 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, topdie 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.

verwandte Informationen