Eine Möglichkeit, die "tatsächliche" Speichernutzung eines Prozesses zu bestimmen, d. H. Privates, unsauberes RSS?

Tools wie "ps" und "top" melden verschiedene Arten der Speichernutzung, z. B. die VM-Größe und die Resident Set-Größe. Keine davon ist jedoch die "echte" Speichernutzung:

Programmcode wird von mehreren Instanzen desselben Programms gemeinsam genutzt.Programmcode für gemeinsam genutzte Bibliotheken wird von allen Prozessen gemeinsam genutzt, die diese Bibliothek verwenden.Einige Apps lösen Prozesse aus und teilen den Speicher mit ihnen (z. B. über gemeinsam genutzte Speichersegmente).Das virtuelle Speichersystem macht den VM-Größenbericht so gut wie unbrauchbar.RSS ist 0, wenn ein Prozess ausgelagert wird, was ihn nicht sehr nützlich macht.Usw.

Ich habe festgestellt, dass das private, schmutzige RSS, wie es von Linux gemeldet wird, der "echten" Speichernutzung am nächsten kommt. Dies kann durch Summieren aller erhalten werdenPrivate_Dirty Werte in/proc/somepid/smaps.

Bieten andere Betriebssysteme jedoch ähnliche Funktionen? Wenn nicht, welche Alternativen gibt es? Insbesondere interessiere ich mich für FreeBSD und OS X.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage