web-dev-qa-db-ja.com

プロセスモニターが2GB以上の物理メモリを使用するのはなぜですか?

ログの追加を妨げている特定のディレクトリ内のファイルをロックしている不正なプロセスを探し出そうとしています。このロックは週に1〜3回発生するため、ProcMonを無人で長時間実行することは言うまでもありません。

残念ながら、1時間に1回程度、ProcMonは2GBを超えてメモリ使用量を着実に増やし始めます。この時点で「ClearDisplay」を実行すると、使用されるメモリは約200mbに戻ります。

「フィルターされたイベントの削除」をオンにしました。
バッキングファイルをデスクトップ上のファイルに設定しています(奇妙なことに、4MBから変更されることはありません)。
そのディレクトリにヒットするプロセスのみが含まれるようにフィルタリングを設定しました。
そのディレクトリにアクセスする必要がある3つのプロセスも除外します。

ちなみに、「Process Monitor Backing Files」ダイアログに入ると、次のように表示されます。

ProcMon負荷:100.0%@ p-1717994043(2,210,277,644 ...

2
ddechant

長いキャプチャのメモリ使用量を減らすために、キャプチャしたデータを仮想メモリではなくファイルに保存するようにProcMonに指示する方法があります。

[ファイル]-> [バッキングファイル...]オプションを使用して、バッキングファイルを[仮想メモリを使用]から[名前付きファイルを使用]に変更し、十分な空きストレージがある高速ディスク上のファイルを指定するだけです。

ProcMonは、仮想メモリにバッファリングする代わりに、指定されたファイルにキャプチャデータを書き込みます。

2
Chris Kline

ドロップフィルターイベントはそれらのみをフィルターします...それらはまだ収集されています...

...しかし、2 GBはひどい量です。私のマシンでは、約5MBのメモリが必要です。正しい統計を見ていますか?

Process Monitorは毎秒大量の情報を収集し、ページファイルに大量のデータを保存します...これが少ない場合は、メモリを使用している可能性があります。

残念ながら、ページファイルのサイズを大きくする以外に、これについてできることは何もないと思います。

1
William Hilsum

1.6GB /24.9GBはそれほど多くありません。

Sysinternals ProcessMonitorを使用して大規模なプログラムをインストールするときにすべてのIOアクティビティを監視し、すべてのフィルターをオフのままにしておくと、すべてがキャプチャされます、RAM&pagefile使用量はしばらくすると屋根を通り抜けます。

たとえば、Visual Studio Community 2015という巨大なプログラムのインストールを監視しています。約1時間経過しており、ページファイルは55.6GBのページファイルサイズのうち47.8GBが使用されています。幸い、私はSSDを持っているので、非常に遅いですが、システムはまだ使用可能です。

タスクマネージャー(Windows 8以降)の[詳細]ペインに移動すると、procmon64.exeの場合、60〜90MBの間でホバリングしているワーキングセット(メモリ)が表示されます。コミットサイズは約375MBです。そのため、タスクマネージャーは、procmon64.exeが使用している巨大なページファイルの使用状況を表示しません。興味深いことです。

しばらくして、インストールが数時間後にようやく終了したとき(SSDとの間でページファイルを頻繁に交換し、VS 2015のインストーラーは非常に非効率的です)、procmon64.exeのワーキングセット(メモリ)は約700MBで、コミットサイズは821MB。 [パフォーマンス]タブ-> [メモリ] '[コミット済み]; 73.4GB/89.5GB、私のSSDは90GBのページファイルでスペースが不足していました! Procmon64.exeは、1億2000万を少し超えるイベントを記録しました。保存された.pmlファイルは62GBでしたが、7zは3GBに圧縮されていました。

このプログラムは本当にページファイルスペースを消費する可能性があります、注意してください。いくつかの写真。 http://imgur.com/a/kcgJk

0
danwat1234