Wie finde ich heraus, welcher Prozess Speicher verbraucht?

Mein MacBook Pro hat 8 GB RAM. Kürzlich ist ein Memory Leak aufgetreten. Auslagerungen und Swaps nahmen weiter zu. Das letzte Mal hat es ~8G Auslagerungsspeicher verwendet.

Aber im Aktivitätsmonitor kann ich keinen Prozess finden, der einen großen Wert in den Spalten „Real Mem“, „Private Mem“ oder „Shared Mem“ hat.

Ich habe die %MEM-Spalte in der Ausgabe von 'ps -ev' überprüft, alle Prozesse belegten weniger als 1% des Speichers. Die vollständige Ausgabe finden Sie in diesem Gist: https://gist.github.com/aleung/4760556

Wie kann man ein Problem mit OSX-Speicherlecks diagnostizieren?

Die %mem-Statistik scheint ... seltsam zu sein. Wie viel Prozent das sind, kann ich nicht sagen. Versuchen Sie es ps -axvstattdessen und sehen Sie sich die Spalten RSS (residenter Speicher in KB) und VSZ (virtueller Speicher, auch KB) an.
Speicherverlust kann durch Isolator.app verursacht werden. Seit ich diese App entfernt habe, freier Speicher > 3G für ein paar Tage. Aber diese Frage ist immer noch gültig, da das Anzeigen der Ausgabe sowohl von Activity Monitor als auch von ps -axvIsolator.app nicht zu viel Speicher verbraucht.
Ich bin in einer ähnlichen Situation und würde auch gerne die Antwort wissen. Vielleicht sollten wir in die Konsolen- und Systemprotokolle schauen.

Antworten (1)

Überprüfen Sie mit diesem Befehl (zeigt mehr Prozesse):

sudo ps -awxm -o %mem,rss,comm | sort -nr | head

Wenn dies nicht hilft, überprüfen Sie mit , fs_usageum Systemaufrufe und Seitenfehler im Zusammenhang mit dem Dateisystem anzuzeigen:

sudo fs_usage -f filesys,diskio

insbesondere Seite ein- und ausblättern, indem Sie Folgendes an den obigen Befehl anhängen:

| egrep -i "page_|pgin|pgout"

Fügen Sie zusätzliche hinzu | grep -v kernel, um Kernel-Prozesse zu ignorieren oder | grep -v 0.00diese mit höherem Zeitaufwand anzuzeigen.

Wenn Ihr Swap groß ist, können Sie das Leeren und Leeren des Festplatten-Cache erzwingen, indem Sie: sudo purge.

Meiner Erfahrung nach hat OS X einige Probleme mit der Verwaltung des Speichers nach einer höheren Betriebszeit (wenn der gesamte freie Speicher verwendet wurde), sodass manchmal nur ein vollständiger Neustart hilfreich sein kann.

Überprüfen Sie auch sudo iotopoder sudo vm_stat 1Befehle, die helfen können.

Siehe auch: Wie kann man eine hohe Kernel-Task-Speicherauslastung untersuchen?