Windows 10にアップグレードしてから、システムがRAMを過剰に消費するようになりました。
少し読んでみたところ、ドライバーがメモリをリークしている可能性が高いと判断しました。そこで、Windows Driver Kitを入手し、poolmonでメモリ使用量を追跡しました。
しかし、ここからどうやって進めたらいいのかよくわかりません。この問題の原因は、"smNp"とタグ付けされたアイテムなのでしょうか?そこから、実際にドライバーを特定するにはどうすればよいのでしょうか?
C:Windows\System32\drivers>findstr /s smnp ."などを試してみましたが、結果は出ませんでした。また、pooltag.txtを見てみると、こんな記述がありました。
以上、何卒よろしくお願いいたします。 よろしくお願いします。
何人かのユーザーのxperfの痕跡を見てみましたが、ここではカーネルの関数ntoskrnl.exe!SmKmStoreHelperWorker
がメモリの割り当てを開始しています。
[![Screenshot][1]][1]
(画像をクリックすると拡大します)
sysinternals][2]で発見しました。
マイクロソフトに問い合わせたところ、これは設計上のものだという回答でした。これはシステムメモリの圧縮に関連しています。
Windows 10 Build 10525の発表で、Microsoftが少し説明しています][3]。
Windows 10では、メモリマネージャに新しいコンセプトを追加しました。
Windows 10では、メモリマネージャに圧縮ストアという新しい概念を追加しました。
圧縮されたページのメモリ内コレクションです。これは、メモリマネージャがメモリを圧迫していると感じたときに
これは、メモリマネージャがメモリ不足を感じたときに、未使用のページをディスクに書き込む代わりに圧縮するというものです。
これにより、プロセスごとのメモリ使用量が削減され、Windows 10がより多くのメモリを維持できるようになります。
Windows 10では、一度に多くのアプリケーションを物理メモリ上に保持することができます。
また、Windows 10全体の応答性が向上します。圧縮ストアは
圧縮ストアは、Systemプロセスのワーキングセットに格納されます。システムプロセスがストアを保持しているため
システムプロセスはストアをメモリに保持しているため、作業セットが大きくなります。
システムプロセスはストアをメモリ上に保持しているため、他のプロセスでメモリが使用可能になったときに作業セットが大きくなります。これは
システムプロセスがより多くのメモリを消費しているように見えるのは、タスクマネージャで確認できます。
システムプロセスが以前のリリースよりも多くのメモリを消費しているように見えます。
そこで、メモリデータをページファイルに書き込む代わりに、メモリを圧縮します。そして、この圧縮されたメモリがシステムプロセスに表示されます。
また、マイクロソフトはインサイドハブに詳細を掲載しています。[Winbetaが作成した記事][4]にも詳細が記載されています。
どうやら、この理由は、マイクロソフトがUWPアプリを停止することを選んだことと関係があるようです。
UWPアプリがフォアグラウンドにないときはサスペンドすることを選択したからだそうです。
これは、スマートフォンのOS管理に非常によく似ています。Windows 8ユーザーは
Windows 8のユーザーは、アプリが画面に表示されていない場合、次の操作を行うまで実行されないことを理解していました。
Windows 8のユーザーは、アプリが画面に表示されていないと、ユーザーがアプリに戻るまで実行されないことを理解していました。この「オール・オア・ナッシング」のアプローチは
Windows 10では、ページファイルと通常のページングアクティビティの間にレイヤーが導入されました。
ページファイルと通常のページングアクティビティの間にレイヤーを導入しました。Windows 10では、ページファイルと通常のページングアクティビティの間にレイヤーが導入され、メモリ圧迫の問題に直面したときに
MMは、どのページを修正リストに移動させるべきかを判断します。
修正リストは、ページファイルをバックアップする二次的なリストです。
修正リストは、スタンバイページファイルのリストをバックアップするページファイルのセカンダリリストです。バックアップリストは
バックアップリストは、他のプロセスによってスタンバイリストのメモリが再利用された場合に備えて取得されます。
バックアップリストは、他のプロセスによってスタンバイリストからメモリが再利用され、元のプロセスがそのページを探しに来た場合に備えてキャプチャされます。その代わりに
Windows 10 MMでは、使用していないページをディスクに書き込むのではなく、圧縮します。
Windows 10 MMは、未使用のページをディスクに書き込むのではなく、圧縮します。ディスクへの書き込みが減ることで、次のような効果が期待できます。
圧縮により、ディスク操作が減り、より多くのデータをメモリに保存できるようになります。
メモリに保存できるデータが増えます。
[![画像の説明を入力してください][5]][5].
Windowsチームによると、「実際には、圧縮されたメモリは Windowsチームによると、「実際には、圧縮されたメモリは、圧縮されていないサイズの約40%を占めています。 Windowsチームによると、「実際には、圧縮メモリーは非圧縮時のサイズの約40%を占めており、一般的なワークロードを実行した結果、Windows 10はページをディスクに書き出します。 以前のバージョンのOSと比較して、ページをディスクに書き込む頻度は50%程度です。 すべてが計画通りに進めば、Windowsユーザーは、すべてのデバイスで待ち時間の短縮を体験できるでしょう。 Windowsユーザーは、すべてのデバイスで待ち時間が短縮され、フラッシュベースのハードドライブを搭載したシステムの寿命が延びることになります。 フラッシュベースのハードドライブを搭載したシステムの寿命が延びることになります**。
減圧もまた、Windows 10が得意とするところです。 Windows 10では、並列化とシーケンシャルリードの組み合わせで シーケンシャルリードで、一度呼び出したページをメモリに生成します。新しい Windows 10では、圧縮の解除を同時に行うことで、より高速な処理が可能になります。 Windows 10では、複数のCPUを使用して、データの解凍と読み取りを同時に並行して行います。 複数のCPUを使ってデータの解凍と読み込みを並行して行います。旧バージョンのWindowsでは、転送速度が遅いため、動作が重く感じられることがありました。 ディスク間の転送速度が原因です。 また、マイクロソフト社はこの機能を説明するビデオをchannel9で公開しています。 Windows 10 RTMにおけるMemory Compression
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM このビデオでは、Mehmet Iyigun氏が、なぜWindows 10のSystem プロセスがより多くのメモリを消費する理由と、それがなぜ良いことなのかを説明しています。 その理由を説明します。プロセスがメモリを多く消費するのは悪いことのように聞こえますが、それは それも、メモリ管理、ページング、ハード/ソフトページフォールトについて理解するまでは。 ソフトページフォールトについて理解するまでは。OSはいくつかの巧妙な最適化を行っていることがわかりました。 OSは、プロセスがメモリの一部を切り詰めても、必ずしもページアウトしないように 必ずしもディスクにページアウトする必要はありません。メモリがRAMに保存されるだけでなく メモリがRAM上に保存されるだけでなく、圧縮されているため、ハードページフォールトは ハードなページフォルトはより稀なことです。その結果、よりスピーディーな操作が可能になります。 最新のTH2ビルドでは、タスクマネージャーの説明が更新され、SYSTEMプロセスが「圧縮されたメモリ」をホストしていることも表示されるようになりました。 . と表示されるようになり、使用量の多さに対する混乱を避けることができます。 2016年8月にリリースされたWindow 10 Anniversary Updateでは、MicrosoftはCompressionを抽出し、現在はMemory Compression
という疑似プロセスで表示し、SYSTEMのメモリ使用量が多いことをユーザーに混乱させないようにしました。 となっています。 しかし、Taskmgrにはこのプロセスが表示されず、ProcessExplorer/ProcessHackerだけが表示できるようになっているようです。Taskmgrでは、圧縮されたメモリの量がオーバービューで表示されるだけです。 。 Taskmgrの使用メモリのグラフの上にカーソルを置くと、圧縮されたデータの量を示すツールチップが表示されます。 。 このデモでは、388MBが122MBに圧縮されているので、267MBが圧縮されて保存されていることになります。
Disable prefetcher in regedit key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlSession Manager\Memory Management\PrefetchParameters
おそらく、Enable Prefetcher
の値が 2
または 3
になっていると思うので、0
に変更してください。
次に、サービスで「Superfetch」を無効にする必要があります。
1.services.mscを検索してください。
2.superfetch "を見つけ、"properties "をクリックして、"disabled "に設定し、サービスを停止してください。
これらの手順を実行すると、ゲームをしているときや普通にPCを使用しているときに、「システム」プロセスは28Kしか使用しません。