C#/.Net Windows サービスのメモリ使用量を長期間監視するのに最適なツールは何ですか? 私の知る限り、perfmon のようなツールは、短期間のメモリ使用量を監視できますが、長期間にわたってグラフィカルに監視することはできません。数秒ではなく、数日にわたる傾向データが必要です。
明確にするために、メモリ使用量を長期間にわたって詳細なレベルで監視し、グラフに時間枠全体と詳細レベルの両方を表示させたいと考えています。小さなサンプリング間隔と大きなグラフが必要です。
C#/.Net Windows サービスのメモリ使用量を長期間監視するのに最適なツールは何ですか? 私の知る限り、perfmon のようなツールは、短期間のメモリ使用量を監視できますが、長期間にわたってグラフィカルに監視することはできません。数秒ではなく、数日にわたる傾向データが必要です。
明確にするために、メモリ使用量を長期間にわたって詳細なレベルで監視し、グラフに時間枠全体と詳細レベルの両方を表示させたいと考えています。小さなサンプリング間隔と大きなグラフが必要です。
私の意見では、Perfmon はこれを行うための最良のツールの 1 つですが、監視したい時間に応じてサンプリング間隔を適切に構成してください。
たとえば、プロセスを監視する場合:
これらのサンプリング間隔を使用すると、Perfmon は問題なく、カウンターの優れたグラフィック出力を生成できます。
私は perfmon を使用し、結果を csv にエクスポートし、その後統計に Excel を使用しました。前回プロセスを監視する必要があったとき、それはかなりうまくいきました
コンピューターの管理をいじってみて(ここでWindowsを実行していると仮定して)、時間の経過とともにプロセスを監視できるように思えます。[コンピューターの管理]->[パフォーマンスログとアラート]に移動し、カウンター/トレースログを確認します。カウンターログを右クリックして、新しいログを追加します。次に、[オブジェクトの追加]をクリックして、メモリを選択します。次に、[カウンターの追加]をクリックし、[パフォーマンスオブジェクト]を[プロセス]に変更して、プロセスを選択します。
メモリの監視自体が優れているのと同様に、リークや古いオブジェクトを特定するためのメモリプロファイリングを考えているかもしれません。ここではhttp://memprofiler.com/が適切な選択ですが、他にもたくさんあります。
非常に具体的なことをしたい場合は、タイマーで実行される独自のWMIベースのロガーを作成することを恐れないでください-これを取得して、処理統計を電子メールで送信し、統計が速すぎたり高すぎたりしたときに警告し、次のように送信しますチャート作成などのXML
Pythonに精通している場合は、このためのスクリプトを作成するのは非常に簡単です。
Activestate Python (無料)は、 win32processモジュールを介してWin32APIの関連部分を公開します。
また、すべてのwin32関連モジュールをチェックアウトするか、 gotAPIを 使用してPython標準ライブラリを参照することもできます。
ソフトウェア検証から.Net Memory Validatorツールを使用することをお勧めします。このツールは、私が使用しなければならない .Net アプリケーションのメモリ管理に関連するさまざまな問題を解決するのに役立ちました。
私は C++ バージョンをより頻繁に使用しますが、それらは非常に似ており、割り当てられているオブジェクトのタイプをリアルタイムで実際に確認できるという事実は、あなたにとって非常に貴重です。
perfmon よりも強力なものが必要な場合は、ProcessMonitor を使用しました。