Wie kann ich die CPU-und Speichernutzung auf einem Mac verfolgen und protokollieren?

Ich weiß, dass ich Activity Monitor (sowie eine Reihe von Anwendungen von Drittanbietern) verwenden kann, um die Auslastung von RAM und CPU auf meinem Mac zu überwachen. Ich möchte jedoch ein Protokoll über einen längeren Zeitraum erfassen, damit ich die Verwendung zwischen Prozessen vergleichen kann, ohne Screenshots machen zu müssen usw. Etwas Konsolenartiges wie dieses:

Process A (5:22 - 5:32)

5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem  
5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem  
...

Wie kann ich das erreichen?

Author: nc4pk, 2013-04-10

3 answers

Dies vielleicht nicht ziemlich ins schwarze treffen, aber versuchen Sie dies:

sar -o ~/output.sar 10 10 

Das sammelt 10 Sätze von Metriken in 10 Sekunden Intervallen. Sie können dann nützliche Informationen aus der Ausgabedatei extrahieren (auch während sie noch ausgeführt wird), z. B. erhalten Sie die Datenträgeraktivität für das von Ihnen abgetastete Intervall:

sar -d -f ~/output.sar

Mache ein man sar, um herauszufinden, welche anderen Optionen es gibt.

Bearbeiten:

sar macht keinen Speicher, so erhalten Sie den freien Speicher auf Ihrem system in zehn Sekunden Intervallen:

vm_stat 10 | awk 'NR>2 {gsub("K","000");print ($1+$4)/256000}'

Sie können das in eine Datei umleiten.

Wenn Sie weitere Informationen benötigen, fragen Sie bitte.

 9
Author: Philip Kearns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-10 23:11:43

Mit dem Python-Programm Sirupy können Sie die CPU-und Speichernutzung von Prozessen protokollieren, jedoch nicht die Threadanzahl.

Syrupy ist ein Python-Skript, das regelmäßig Snapshots des Speichers und der CPU-Auslastung eines oder mehrerer ausgeführter Prozesse erstellt, um dynamisch ein Profil aufzubauen ihrer Nutzung von Systemressourcen.

Sirupy arbeitet mit einem von zwei Modi. Im ersten (Standard -) Modus überwacht es die Ressourcennutzung eines Prozesses, der sich aus der Ausführung eines benutzerdefinierter Befehl (bei dem es sich um eine beliebig komplexe Kombination von Programmen und Argumenten handeln kann, die von einem Shell-Terminal aus aufgerufen werden können). Im zweiten Modus überwacht Sirupy die Ressourcennutzung externer laufender Prozesse, die benutzerdefinierte Kriterien erfüllen: eine PID-Nummer (Process IDentifier) oder eine Befehlszeichenfolge, die einem regulären Ausdrucksmuster entspricht.

In beiden Fällen basiert die Überwachung der Systemressourcennutzung auf wiederholten Aufrufen des Systembefehls ps.

Für Ihren Anwendungsfall, der jeden laufenden Prozess protokolliert, würde dieser Befehl meiner Meinung nach funktionieren:

syrupy.py --poll-command='.*'
 2
Author: Rory O'Kane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-12-08 08:55:41

Sie können top verwenden und Daten in awk oder grep, um bestimmte Informationen zu lesen, die Sie benötigen.

Schau es dir hier an; http://ss64.com/osx/top.html

top ist eigentlich das zugrunde liegende Tool, auf dem Activity Monitor aufbaut.

 1
Author: User2910293,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-10 23:31:02