web-dev-qa-db-ja.com

Windows 10、大量のRAMを使用する 'システム'プロセス

Windows 10にアップグレードしてから、私のシステムはRAMを過度に消費しています

enter image description here

私は少し読んできたし、それはおそらくドライバがメモリをリークしていると判断した。だから私は自分自身でWindows Driver Kitを入手し、poolmonでメモリ使用量を追跡しました:

enter image description here

しかし、私はここからどうやって進むべきか本当に知りません。 「smNp」というタグが付けられた商品はこの問題の原因ですか?そこから実際に運転手を見分ける方法は?

"C:¥Windows¥System32¥drivers> findstr/s smnp"などを試してみましたが、結果が返されませんでした。私もpooltag.txtファイルを見て、これは私がそれのために見つけた説明です:

enter image description here

だから、ええ、任意の助けがいただければ幸いです。前もって感謝します。

81
Nayncore

services.mscに入ることによって(via Win+RSuperfetchを無効にすると、これは完全に解決されます。スーパーフェッチが今のところ壊れているのか、それとも「仕様通り」なのかわからない。

さらに、ページングファイルを削除しても同じ効果がありますが、上記の解決策はより安全な賭けです。

14
den

私はいくつかのユーザーのxperfトレースを見てきましたが、ここではカーネルのntoskrnl.exe!SmKmStoreHelperWorker関数がメモリの割り当てを開始します。

Screenshot
(画像をクリックすると拡大します)

これは sysinternals で発見しました。

私はそれについてマイクロソフトに尋ねましたが、答えはこれは仕様によるものです。システムメモリの圧縮に関連しています。

Windows 10 Build 10525の発表で、Microsoftは少し説明した

Windows 10では、圧縮ストアと呼ばれるメモリマネージャーに新しい概念を追加しました。これは、圧縮されたページのメモリ内コレクションです。 これは、メモリマネージャがメモリのプレッシャーを感じると、ディスクに書き込むのではなく、未使用のページを圧縮することを意味します。これにより、プロセスごとに使用されるメモリの量が削減され、Windows 10は一度に物理メモリ内により多くのアプリケーションを維持できます。これは、Windows 10全体での応答性の向上にも役立ちます。圧縮ストアは、システムプロセスのワーキングセットに存在します。 システムプロセスはメモリ内にストアを保持するため、メモリが他のプロセスで使用可能になると、そのワーキングセットは正確に大きくなります。これはタスクマネージャーに表示され、システムプロセスが以前のリリースより多くのメモリを消費しているように見える理由です。

そのため、メモリデータをページファイルに書き込む代わりに、それらを圧縮します。そして、この圧縮メモリはシステムプロセスに表示されます。

マイクロソフトは内部ハブにも詳細を掲載しました。 Winbetaは記事を作成しました これには詳細が含まれています。

どうやら、この理由は、MicrosoftがUWPアプリをフォアグラウンドにないときにサスペンドすることを選択したことと、たまたまスマートフォンのOS管理に非常に似ていることと関係しているようです。 Windows 8ユーザーは、アプリが画面に表示されていなければ、ユーザーが元の画面に戻るまで実行されないことを理解していました(おそらくそうではありませんでした)。 「オールオアナッシング」アプローチは、ページファイルと通常のページングアクティビティの間にレイヤーを導入するWindows 10で更新されています。現在、メモリ不足の問題に直面すると、MMはトリミングと呼ばれるプロセスで、どのページを変更リストに移動するかを決定します。変更リストは、リストをバックアップするページファイルのセカンダリリストです。スタンバイページファイル。バックアップリストは、メモリが別のプロセスによってスタンバイリストから回収され、元のプロセスがそのページを探しに来た場合にキャプチャされます。 Windows 10 MMは、すべてまたは何もする代わりに、未使用のページをディスクに書き込むのではなく圧縮します。書き込みが少なくなると、結果としてディスク操作が少なくなります–圧縮のおかげです–そして、より多くのデータをメモリに保存できるようになりました。

enter image description here

Windowsチームによると、「実際には、圧縮メモリは非圧縮サイズの約40%を占め、典型的なデバイスが典型的なワークロードを実行している結果、Windows 10はページをディスクに書き出します以前のバージョンのOSの50%だけです。」すべてが計画通りに進んでいる場合、Windowsユーザーは、すべてのデバイスの待ち時間が短縮される可能性があります。フラッシュベースのハードドライブを搭載したシステムでの寿命の延長

減圧もWindows 10がうまく機能するように設計されたものです。 Windows 10は、並列化とシーケンシャル読み取りの組み合わせを使用して、呼び出されたメモリにページを生成します。 Windows 10は複数のCPUを使用してデータを同時に解凍し、並行して読み取るため、新しい解凍はより高速なエクスペリエンスをもたらすはずです。 Windowsの古いバージョンは、ディスク間の転送速度のために動作が遅く感じられた可能性があります。

Microsoftは、この機能を説明するビデオをchannel9でもリリースしました。

Windows 10 RTMのメモリ圧縮
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

このビデオでは、Mehmet IyigunがWindows 10のシステムプロセスがもう少しメモリを消費している理由と、なぜそれが良いことなのかを議論しました。より多くのメモリを使用するプロセスは、悪いことのように聞こえます。それは、メモリ管理、ページング、ハード/ソフトページフォールトについてさらに理解するまでです。 OSがいくつかの巧妙な最適化を行っているため、プロセスはメモリの一部をトリミングできますが、ディスクにページアウトする必要はありません。メモリはRAMに保存されるだけでなく、圧縮されるため、ハードページフォールトはよりまれに発生します。結果は、よりすてきな体験になります。

最新のTH2ビルドでは、Microsoftはタスクマネージャーの説明を更新し、SYSTEMプロセスがcompressed memoryをホストすることも示しました。

enter image description here

「高」使用法に関する混乱を避けるため。

2016年8月にリリースされたWindow 10 Anniversary Updateで、MicrosoftはMemory Compressionと呼ばれる擬似プロセスで現在表示されている圧縮を抽出し、SYSTEMのメモリ使用量が非常に多い理由をユーザーを混乱させなくなりました。

enter image description here

しかし、Taskmgrはこのプロセスを表示しないようです。ProcessExplorer/ ProcessHackerのみが表示できます。 Taskmgrは、概要に圧縮メモリの量のみを表示します。

enter image description here

Taskmgrの使用済みメモリグラフにカーソルを合わせると、圧縮されたデータの量を示すツールチップが表示されます。

enter image description here

このデモでは、388MBが122MBに圧縮されているため、267MBが圧縮とともに保存されます。

93
magicandre1981