メモリ使用量のログを記録できるツールはありますか?


18

プロセスのメモリ使用量を監視し、このデータをログに記録したい。そのようなツールは存在しますか?


1
プログラムによるプロセスメモリ使用量の監視に関するこのリンクは、ニーズを解決するのに役立つと思います。
セン

回答:


8

私は書かれているまさにこれを行うためのスクリプトを。基本的psに特定の間隔でサンプリングし、特定のプロセスのプロファイルを作成します。プロセスは、監視ツール自体で起動することも、独立したプロセス(pidまたはコマンドパターンで指定)にすることもできます。


1
Syrupyはどうやらgithub.com/jeetsukumaran/Syrupyに移動した
Framester

12

時々、必要になったとき、私はただやる:

$ top -d 1 -b |grep <process> >>somefile

それはエレガントな解決策ではありませんが、仮説を検証するための素朴な価値が必要な場合、仕事を完了します。


私はそれは考えるであることのシンプルでエレガント。あなたは何をしたいことがありgrep --line-buffered <process> >>somefile、バッファリングせずに出力に各行をgrepを強制する
オットToomet

7

sarsysstatパッケージの(System Activity Reporter)は、このような場合の友達です。

別の方法は、Munin、pnp4nagios、rrdtoolsなどの履歴データと組み合わせて監視することです。


1
しかし、sar1つのプロセスだけに焦点を合わせることができますか?ほとんどの場合、システム全体を監視するようです
-xenoterracide

3
またpidstat、sysstatパッケージのコマンドは、単一プロセスの統計をレポートするための非常に優れたインターフェイスを提供します。
スティーブンD

@xenoterracide Steven Dが答えた。私は以前このコマンドを知りませんでした。
クリスチャン

4

前述のsarの他に、をお勧めします。後で閲覧できるバイナリログを保存し、メモリの他にも多くの情報を保存します。


3

Valgrindを試すことができます。

Valgrindは、動的分析ツールを構築するための計測フレームワークです。多くのメモリ管理とスレッドのバグを自動的に検出し、プログラムを詳細にプロファイリングできるValgrindツールがあります。Valgrindを使用して新しいツールを構築することもできます。

現在Valgrindディストリビューションには、メモリエラー検出器、2つのスレッドエラー検出器、キャッシュおよび分岐予測プロファイラー、コールグラフ生成キャッシュおよび分岐予測プロファイラー、ヒーププロファイラーの 6つの生産品質ツールが含まれています


これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
saji89

このドキュメントでは、山塊について詳しく説明します。
ショーン謝

0

私はスリダールの単純な答えが好きですが、私は彼を試す前に自分のものを転がしました:

import json, psutil, datetime, time

with open('log.txt', 'w') as f:
  while True:
    json.dump((datetime.datetime.now().isoformat(),
               psutil.Process(7274).memory_info()._asdict()), f)
    f.write('\n')
    f.flush()
    time.sleep(1)

基本的には、構造化された出力が必要な場合にのみ役立ちます。必要に応じて7274を変更します。Python 3.5.somethingが壊れた_asdict()ので、Python 2を使用してください。

出力ファイルは次のようになります。

["2019-03-19T11:21:53.784670", {"rss": 220389376, "vms": 538984448, "shared": 15724544, "text": 303104, "lib": 0, "data": 221364224, "dirty": 0}]
["2019-03-19T11:21:54.786136", {"rss": 220438528, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:55.787555", {"rss": 220495872, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:56.788754", {"rss": 220528640, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.