web-dev-qa-db-ja.com

MacでCPUとメモリの使用状況を追跡してログに記録するにはどうすればよいですか?

アクティビティモニター(および多数のサードパーティアプリケーション)を使用して、MacのRAMおよびCPU)の使用状況を監視できることはわかっていますが、一定量以上のログをキャプチャしたいスクリーンショットなどを撮らずにプロセス間の使用状況を比較できるようにするためです。次のようなコンソールのようなもの:

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  
...

どうすればこれを達成できますか?

7
RSH

これはquiteがマークに当たらないかもしれませんが、これを試してください:

sar -o ~/output.sar 10 10 

これにより、10秒間隔で10セットのメトリックが収集されます。次に、出力ファイルから有用な情報を抽出できます(実行中であっても)。たとえば、これにより、サンプリングした間隔のディスクアクティビティが取得されます。

sar -d -f ~/output.sar

man sar他にどのようなオプションがあるかを調べます。

編集:

sarはメモリを実行しないため、10秒間隔でシステムの空きメモリを取得します。

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

それをファイルにリダイレクトできます。

さらに詳しい情報が必要な場合は、お問い合わせください。

9
Philip Kearns

Python program Syrupy を使用すると、スレッド数ではなく、プロセスのCPUとメモリの使用状況をログに記録できます。

SyrupyはPythonスクリプトであり、1つ以上の実行中のプロセスのメモリとCPU負荷のスナップショットを定期的に取得して、システムリソースの使用状況のプロファイルを動的に構築します。

Syrupyは、2つのモードのいずれかで動作します。最初の(デフォルト)モードでは、ユーザー指定のコマンド(シェル端末から呼び出すことができるプログラムと引数の任意の複雑な組み合わせ)の実行から生じるプロセスのリソース使用量を監視します。 2番目のモードでは、Syrupyは、ユーザー指定の基準(PID(プロセスIDentifier)番号または正規表現パターンに一致するコマンド文字列)を満たす外部実行プロセスのリソース使用量を監視します。

いずれの場合も、システムリソースの使用状況の監視は、システムコマンドの繰り返し呼び出しに基づいています ps

実行中のすべてのプロセスをログに記録するユースケースでは、次のコマンドが機能すると思います。

syrupy.py --poll-command='.*'
2
Rory O'Kane

topを使用して、データをawkまたはgrepにパイプして、必要な特定の情報を読み取ることができます。

こちらでチェックしてください。 http://ss64.com/osx/top.html

topは、実際にはアクティビティモニターが構築されている基盤となるツールです。

0
User2910293