2009-06-02 10 views
6

では、我々はメモリフットプリントを記録することができます方法はありますか?プロセスの終了後に という形で我々はまだそれにアクセスすることができます。記録メモリフットプリントのLinux

私はメモリフットプリントをチェックする典型的な方法はこれです:

$ cat /proc/PID/status 

しかし、プロセスが終了した後にそれが存在ではありません。

+0

サーバーフォルトに関する同様の質問:http://serverfault.com/questions/11754/running-batch-jobs-and-getting-a-peak-memory-usage-summary-for-each-job/12066 – MikeyB

答えて

5

あなたのような何かを行うことができます:

watch 'grep VmSize /proc/PID/status >> log' 

プログラムは、あなたがlogに時間をかけてメモリフットプリントのリストを持っています終了。

+0

@Nathan:ありがとう。どうすれば私のコマンドであなたのコマンドを同時に「一緒に」リリースできますか?そのような2つの間に時間の遅れがないように。 – neversaint

+1

あなたの最善の策は、おそらく、ラッパースクリプトがプログラムを呼び出して、私は示唆したコマンドを実行することです。あなたはまだタイムラグがありますが、手動で行うよりも短くなります –

2

あなたはmunin +カスタムプラグインを使用して、それを記録することができます。

これは、あなたが簡単に、監視し、必要なプロセス情報を保存し、それをグラフ化することができます。

Here's a related answer I gave at serverfault.com

4

Valgrindメモリプロファイラは、プログラムのメモリ使用状況に関する詳細な情報を提供するMassifと呼ばれています:

山塊がヒーププロファイラです。これは、プログラムのヒープの定期的なスナップショットを取って、詳細なヒーププロファイリングを実行します。これは、プログラムのどの部分が最も多くのメモリ割り当てを担当するかに関する情報を含む、ヒープの使用状況を示すグラフを生成します。グラフには、最も多くのメモリが割り当てられている場所を特定するための詳細情報を含むテキストファイルまたはHTMLファイルが追加されています。 Massifは通常より20倍速くプログラムを実行します。

関連する問題