Windows 10の「システムおよび圧縮メモリ」のCPU使用率が高い原因は何ですか?


39

24Gメモリが使用可能で、2.5Gが使用されているラップトップでWindows 10を監視する必要があります。「メモリのプレッシャー」はありません。他の質問では、メモリ消費量を調べました(ここでは問題ではありません)。ここおよび他の関連するすべての質問で、Windows 10の更新プログラムの1つ後の1か月または2か月にわたって、この過度のCPU使用率の問題について適切な説明を見つけることができませんでした。

このサービスまたはプロセスには価値があることを受け入れることができますが、継続的に実行し、追加のCPUリソースを使用し、その結果、バッテリーの電力をより効率的に使用しないこと、それが解決しようとしている問題です。

このサイトのいくつかの記事で、SuperFetchをオフにして、PrefetchParametersのレジストリエントリを0に設定することが提案されました。両方を実行し、再起動しました。

マシンを再起動し、スクリーンセーバーをオフにして、タスクマネージャーを起動します。数分後、「システムと圧縮メモリ」というラベルの付いたサービスがCPUの5%を一貫して使用し始めます。私の基本CPU使用率は1%である可能性があり、ファンを低く保ちます。しかし、「システムおよび圧縮メモリ」サービスが5%で実行されると、ファンが増加します。そして、ただ走り続けます。

愚かな。なぜそのようなサービスがメモリのプレッシャーなしで一貫して実行される必要があるのですか?それをオフにするか、実際に何をしているかを判断するために試すことができる追加のメカニズムはありますか?ログファイルのエントリはどこかにありますか?または詳細な診断ツールですか?

how-to-disable-windows-10-memory-compression-実際の答えはありません

windows-10-system-process-taking-massive-amounts-of-ram

17993-windows-10-memory-compression

desktop-build-10525-and-windows-10-memory

www.techish.net/system-and-compressed-memory/

windows-10-build-1511-overheating-cpu-fan-always

Windows Performance Recorder-情報の解釈方法に関する情報へのリンクが必要になりました

スクラブメンテナンス


1
ええ、十分なメモリがあるときにWindowsがページファイルを使用する理由を理解したことがありません。ページファイルを無効にすると問題が解決する場合があります。
モアブ


@Moab:Windowsが「十分なメモリがあるときにページファイルを使用する」という認識は、Windows XPのタスクマネージャーの誤ったラベルに由来します。PerfMonを使用して実際のページファイルの使用状況を調べると、通常は予想よりはるかに小さいことがわかります。
ジェイミーハンラハン

2
CPU使用率のトレースをキャプチャします。Win10 SDKからWPTをインストールします:dev.windows.com/en-us/downloads/windows-10-sdk、WPRUI.exeを実行し、CPU、ディスク、VirtualAlloc、ResidentSetを選択し、システムの使用状況を1〜2分キャプチャして保存しますそれをETLファイルに入れます。ETL + NGENPDBフォルダーを7z / RARファイルに圧縮し、圧縮ファイルをOneDriveにアップロードし、共有リンクを作成して共有リンクをここに投稿します
magicandre1981

@ magicandre1981:可能な方法論を提供してくれてありがとう。ファイルはoneunified.net/files/rpb.20160102.WPR.7zにあります。何かを見つけたら、方法論を投稿できますか?他の多くの投稿がこのテクニックを利用できると確信しています。...再び感謝。
レイモンドバークホルダー

回答:


26

WPAを使用してETLファイルを分析すると、CPU使用率はシステムメモリの圧縮によるものではないことがわかります。から来ntoskrnl.exe!MiScrubMemoryWorkerます:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

これは、いくつかのパターン(ntoskrnl.exe!RtlpGenericRandomPatternWorker)を埋めたり読み込んだりして、メモリのエラーをテストする機能です。

これは仕様によるものであり、デバイスがアイドル状態のときにアイドルメンテナンスタスクが開始されると発生します。


有難うございます。それは活動にいくつかの光を当てます。アイドルという言葉に言及したところで、2つのコメントを作成できます。1)あなたが評価したETIファイルは、コンソールでアクティブになっている間に作成され、CPUは「システムおよび圧縮メモリ」の約10%〜15%であり、最終的に終了しました。だから、ある種の活動を記録することができました。そして、アイドルメンテナンスを評価しました。2)次のコメント....
レイモンドバークホルダー

10
閉鎖のため、Win 10で、[スタート]、[コントロールパネル]、[管理ツール]、[タスクスケジューラ]、[タスクスケジューラライブラリ]、[Microsoft]、[Windows]、[メモリ診断]の2つの項目がありました。タスクの実行は、ログイベントに依存する場合があります。それらが存在しなければならないのか、それともログへの入力時にトリガーされるのかはわかりません。RunFullMemoryDiagnosticEntryを無効にしました。数分後に5%から12%の使用率が表示されなくなりました。タスクのプロパティの[設定]タブで、非常に頻繁に実行しないように調整できる場合があります。....別の時間のテスト。
レイモンドバークホルダー

2
問題を解決できると聞いてうれしいです。
magicandre1981

1
コメントに追加するには、RunFullMemoryDiagnosticとProcessMemoryDiagnosticEventsの2つのタスクを定義しました。最も重要なのは2番目のタスクです。「ログ:システム、ソース:アプリケーションポップアップ」、「ログ:アプリケーション、ソース:アプリケーションエラー」、残り2つのトリガーが有効になりました。2つのトリガーを無効にすることで問題が解決しました。問題は、開発中の一部のアプリがイベントログエラーに書き込み、メモリチェックを引き起こすことでした。残りの2つのトリガーはそれがそれらを無効にしない方が良いですので、関連の完全システムです
zihotki

3
トロールがそれをダウン投票した。はい、xperf / WPR / WPAはレベル500のエキスパートですので、教養のないばかげたトロール facepalm
magicandre1981

9

まず、再。CPU使用率:「システムおよび圧縮メモリ」プロセス(サービスではない)は多くの機能を実行します。CPU時間を使用して表示されるからといって、メモリ内容の圧縮作業を実行しているという意味ではありません。調べるには、Process Explorerを使用して、CPU時間を使用しているプロセス内のスレッド関数の名前を見つけます。この回答で説明さているように、これを行うにはProcess Explorerでシンボルを構成する必要があります。

圧縮されているメモリは

  • プロセスのプライベートワーキングセットの一部(つまり、他のプロセスと共有)。そして
  • そのプロセス中に変更された。そして
  • その後、ページの置換によりプロセスから失われ、変更済みページのリストに追加されます。(このアルゴリズムは、Windows 10では大幅に変更されていません。以前のようにページを置き換えることはできません。)

さて...ページファイルがない場合、(プロセスが終了するまで)変更されたページリストにとどまります。(注意:ページファイルを無効にしても、これまでに説明した動作は変わりません。)

ページファイルがある場合(もちろん、強くお勧めします)、Windows 10と以前のバージョンでは動作が異なります。

  • Windows 10より前は、すぐにページファイルに書き込まれ、物理ページはスタンバイページリストに移動されていました。これは、システムプロセスの「変更されたページライター」スレッドによって行われます。

  • Windows 10では、最初に圧縮され(以前の約半分のスペースを使用)、システムプロセスのユーザーモードアドレススペース(現在は「システムと圧縮メモリ」と呼ばれる)に隠されています。メモリを解放する必要がある場合は、ページファイルに書き込み、他の使用のために解放できます。(スペース圧縮の利点は、ページファイルスペースとI / O時間にも適用されることに注意してください。)

それで、本当に、これは良いことです。ただし、Windows 10より前のシステムプロセスで使用されていた追加メモリは、変更されたページリストまたはスタンバイリストにあった場合の約2倍でした。確かに、以前よりも多くのスペースは必要ありません。

(最近のテストでは)ページファイルを削除することでこのメカニズムを無効にできますが、これはページの置換動作には影響しません。プロセスから押し出された変更されたプライベートページは、他の使用のために解放されることから単に不適格となり、システムプロセスにある代わりに、メモリ(その約2倍)がMPL上に置かれます。


プロセスエクスプローラーで、デバッグシンボルを読み込まずに、何かを取得します:ntoskrnl.exe!CcCopyWriteWontFlush + 0xb50シンボルを追加すると、詳細が表示されますか?12のインスタンスがあり、1つは12.5%のCPUを要求しています。システムプロセスに属します。
レイモンドバークホルダー

@RaymondBurkholderスレッドのスタックを見ることで、より多くの情報を得ることができます。
ダニエルB

@DanielB:はい、それは、Process ExplorerでPID 4のシステムプロセスのプロパティを表示するポップアップの[スレッド]タブからでした。明確化:スタックボタンには何も表示されませんが、モジュールボタンは、2015-11-22日付のntkmlmp.exeファイルからのものであることを示します。これは、この余分なCPUが起動したおおよその日付だと思います。
レイモンドバークホルダー

これは、Windowsアップデートがこのファイルに最後に影響を与えた日付です。結局のところ、それはシステムコンポーネントです。
ダニエルB

@RaymondBurkholderシンボルが構成されていない「StartAddress」表示は、まったく役に立ちません。シンボル名(「CcCopyWriteWontFlush」など)とオフセット(「+ 0xb50」)が表示されている場合、シンボル名はほぼ間違いなく間違っています。必要なのは、オフセットが表示されていないntoskrnl.exe!ExpWorkerThreadなどです。ああ... MSがシンボルを提供しないモジュールのオフセットが表示されます-ほとんどの場合、これらはサードパーティのドライバーです。それらは、nvhda64v.sys + 0x30acのようにmoduleName + offsetとして表示されます。それらのシンボルを取得することはできませんが、デバッグの場合はモジュール名だけが役立つことがよくあります。
ジェイミーハンラハン

3

「Kill​​er Network Manager」ソフトウェアの可能性があります。アンインストールすると問題はなくなりますが、ネットワークアダプタードライバーもアンインストールされるため、ネットワークも同様に削除されます。良い点は、修正があります。

まず、http://www.killernetworking.com/support/driver-downloads/item/killer-suiteにアクセスして新しいバージョンをダウンロードしますが、まだインストールしないでください。保存して、ファイルの場所を確認してください。

次に、コントロールパネルから現在のバージョンをアンインストールします。コンピューターを再起動する必要があります。コンピューターがバックアップされたら、新しいソフトウェアインストーラーを実行します。2016年1月にリリースされた新しいバージョンには、同じ問題はないようです。

古いバージョンのソフトウェアには、この問題を引き起こすメモリリークがあると思います。

参考までに、「Kill​​er Network Manager」ソフトウェアは、Qualcomms Aethos Killer Wireless-AC / Wireless-Nおよび有線E2200 / E2400ネットワークカードの一部です。ソフトウェアがなければ、インターネットはありません。


ドライバーがなければ、インターネットはありません。あなたはできるメーカーはあなたが必要と考えているすべての無意味guffとブロートウェアなしでドライバを入手します。リンクしたページの下部には、killernetworking.com
モクバイ

2

最近Windows 10にアップグレードした後、同様の問題が発生しました。マウスが突然ストールを開始します。つまり、画面上でマウスを移動すると、使用が非常に難しくなります。

タスクマネージャーでCPU使用率を確認し、「システムと圧縮メモリ」プロセスがCPUの5〜15%を消費し始めたときに問題が発生したことに注意しました。プロセスエクスプローラーを実行し、スレッドをチェックしました。レイモンドのように、主犯人はCcWriteCopyWontFlushであり、オフセットは0xb50でした。少しグーグルでこのページに移動しました。ここでいくつか提案されているようにWindowsシンボルをインストールしようとしましたが、オフセットを解決する助けにはなりませんでした。

問題も散発的でした。私は数時間働き、それから数分間現れたり消えたりして、夢中になりました。再起動するとしばらく回復し、その後復帰します。

ここでの回答から、PC上のドライバーを探し出すことにしました。そこで、デバイスマネージャーから始めました。そこで答えを得ました。問題が発生すると、デバイスマネージャーウィンドウが1秒おきまたは2秒ごとに常に空白になり、更新されます。それは本質的に読めなかった。さらにグーグルは、外部USBデバイスの接続と再接続を提案しました。私は、USBポートに接続されたケーブルを介して毎日PCから充電するSamsung電話に接続しました。また、PCとMyPhoneExplorerを使用して電話機とOutlookを同期し、SamsungのPC用ドライバを使用して、電話機の内部および外部RAMにいくつかのドライブをマップします。これらのドライブは、デバイスマネージャーで頻繁に表示および非表示になります。

私の携帯電話はGalaxy S2で、約4歳で、microUSBポートで1年以上接続に関する問題がありました。それは問題の散発的な性質を説明するかもしれません、またはそれは私の電話のためのくだらないサムスンPCドライバーかもしれません。それが単なるケーブルだった場合、再起動がしばらくの間問題を解決する理由がわからないので、それはまだ少し謎ですが、少なくともソースを知っており、私はそれを修正することができます。

問題を解決する最も簡単な方法は、電話を切断することです。とにかく古いので、それを捨てようとしています。だから、レイモンドは、彼のPCで実行されている同様のソフトウェアを備えたサムスンのデバイスドライバも持っていたのだろうかと思っています。レイモンド、まだチェックインしている場合はお知らせください。

先ほど述べたように、Windows 7からWindows 10へのアップグレードのかなり前から、ケーブルは少し安っぽく、サムスンのソフトウェアは常にひどいものでしたが、Windows 7では、他のPCの動作に影響はありませんでした。Windows 10では、マウスがぎくしゃくして、使用不可能に近くなりました。ターゲットに着地しようとするのは非常に苦労しました。また、キーの押下を見逃してキーボードも影響を受けていたと思います。これらの要因がどのように関係しているかは奇妙であり、Windows 10の改善についてマイクロソフトに何を提案すべきかはわかりませんが、Windows 10は少し「繊細」だと感じています。注意して使用してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.