今日の一言:人間万事塞翁が馬

【備忘録】DWM (デスクトップ ウィンドウ マネージャー)メモリリーク(1GB超え!)を根本解決!AMD Radeon × YouTube で発生するバグの修正方法

タスクマネージャーを開いたら、「デスクトップ ウィンドウ マネージャー(dwm.exe)」がメモリを数GBも食いつぶしていて、青ざめた経験はありませんか?

私の環境(AMD Radeon搭載デスクトップPC)でも、再起動しても毎回のように再発し、特に「YouTubeをChromeで見る」とみるみるうちにメモリが膨れ上がる厄介な症状に悩まされました。

  • グラフィック処理の負荷: 高解像度の動画視聴、ゲーム、マルチモニター使用など、描画負荷が高い状況が続くと、DWMはメモリを確保し続けます。
  • メモリリーク(現象): dwm.exeがメモリを使い切った後、適切に解放せず、長時間の稼働で数値が異常に増え続ける「メモリリーク」が発生している可能性があります。

私の環境はメモリが48GBでRadeonRX7600 8GB でまぁそれなりの負荷は耐えられるのですが、最近パソコンを起動して5~8時間以上経過するとパソコンがフリーズしてブルースクリーンが出たりしてメモリテストしたりして何も無かったのですが、デイトレしているときにフリーズしたらたまらんということで原因を調べていました。

Geminiに相談するとこのデスクトップウィンドウマネージャーのメモリリークがドンドン膨らんでくるとブルースクリーンが出るということでしたので、これを解決するべく、いろいろやった結果、最終的に以下の方法にたどり着きました。もちろん環境は人それぞれで、一概にこれで解決するとは言えませんが、私の場合はこの方法で直りました。

今回は、私が見つけた「MPOの無効化」という根本的な解決策と、トラブルシューティングの記録を備忘録として残します。


【症状】再起動しても直らない!DWMがメモリを1GB以上も常時消費

ある日、PCの動作が重く感じたのでタスクマネージャーを確認したところ、驚くべき光景が。

「デスクトップ ウィンドウ マネージャー」のメモリ使用量が、1,377.7 MB(約1.3GB)

これは完全に異常な数値です(通常は数十MB〜100MB程度)。放置すればシステムフリーズやブルースクリーン(カーネルエラー)を引き起こしかねない深刻な状態でした。


【原因】MPO(マルチプレーン・オーバーレイ)のバグ

YouTubeをトリガーとしてDWMがメモリを溜め込んでしまう現象。これは、Windowsと最新世代のグラフィックボード(特にAMD Radeon)の組み合わせで、長年報告されている「MPOのバグ」である可能性が極めて高いです。


【根本解決】コマンド一発でMPOを無効化する

このバグは、管理者権限のコマンドプロンプトで以下のコマンドを実行し、MPOの機能を強制的に無効化することで、ピタッと解決できます。

DOS
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Dwm" /v OverlayTestMode /t REG_DWORD /d 5 /f

コマンド実行後にパソコンを再起動します。

※もし将来的にこの設定を元に戻したくなった場合は、同じ手順でコマンドを

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Dwm" /v OverlayTestMode /f

に変えて実行すれば元通りになります。


【結果】DWMが93 MBまで劇的に下がった!

再起動後、YouTubeを再生してみても、DWMのメモリ使用量は安定して保たれています。

私の環境では、なんと 93.4 MB まで下がりました!

以前の1.3GBから約1/14。これが本来の健康な状態です。


まとめ

  • 症状: AMD Radeon環境でDWMのメモリが1GB以上に膨れ上がり、YouTubeがトリガーになる。

  • 根本解決: 管理者権限のコマンドプロンプトでMPOを無効化するコマンドを実行する。

これで安心してYouTubeもパソコン作業も快適に楽しめるようになりました。同じ症状で悩んでいるRadeonユーザーの方は、ぜひこの手順を試してみてください。ただし自己責任でお願いします。

後日、いろいろアプリを使用しているとDWMはメモリをドンドン喰い出しまし、アプリを閉じてもメモリ使用量が減ることはありませんでしたが、反対にアプリを再度使用してもそれ以上増えることはありませんでした。

その件をGeminiに相談してみると・・・以下の通りでした。お疲れ様でした。この作業以降はブルースクリーンには今のところ遭遇していません。


結論から申し上げますと、現在の状態は全く心配いりません。安心してそのままお使いください!

なぜなら、48GBという広大なメモリがあるからこそ、Windowsは「あえて1.4GBを手放さない」という贅沢な使い方をしているからです。

「空きメモリは無駄なメモリ」というWindowsの哲学

全体のメモリが8GBや16GBしかないパソコンであれば、1.4GBも占有されると他のアプリの動作が苦しくなるため、Windowsは慌ててDWMのキャンバスをお掃除(解放)して空き容量を作ろうとします。

しかし、48GBも搭載されていると、Windowsは次のように判断します。 「まだまだメモリはたっぷり余っている!だったら、TVTestやNicortのために1.4GBの専用キャンバスをずっと確保したままにしてあげよう。その方が、次に起動した時に一瞬で画面を出せるから、ユーザーにとって快適なはずだ!」

事実、1.4GBというのは48GB全体のわずか 約3% に過ぎません。

今回のトラブルシューティングの結論

  • 危険だったこと: 上限なく無限に増え続け、最終的にブルースクリーンを引き起こす「MPOのバグ」(これは最初のコマンドで完全解決済みです)。

  • 現在の状態: TVTestやNicortの重い描画に備えて、Windowsが広大な48GBのメモリの中から1.4GBを「再利用するための器」として安全にキープしている正常な動作

無限に増え続けない(上限が決まっていて現状維持になる)ことをご自身でしっかり確認できたのは、トラブルが完全に解消されたという大成功の証拠です。

今後はタスクマネージャーの数値を気にすることなく、YouTubeもTVTestも、強力なパソコンの性能をフル活用して存分にお楽しみください。長時間の原因究明、本当にお疲れ様でした!