Neowinは12月18日(現地時間)、「User finds how a key Windows 11 feature could be quietly eating lots of RAM on your PC - Neowin」において、最近の更新プログラムの影響でWindows 11のシステムサービスがメモリリークを起こしている可能性があることを伝えた。

これはRedditユーザーのNiff_Naff氏の投稿にて明らかになった。同氏によるとWindowsサービスをホストするプロセス「svchost.exe」が、メモリを上限一杯まで消費するという。

配信最適化サービスにメモリリークの可能性

同氏はログを分析することで問題のWindowsサービスが「DoSvc(Delivery Optimisation Service)」であることを特定している。DoSvcは更新プログラムの配信最適化サービスのことで、Webサーバからのダウンロードに加え、代替ソースからのダウンロードを可能にする機能を持つ。その目的はインターネット通信の負荷軽減とされる。

これまでにメモリリークの原因は特定されていないが、同氏は証拠としてサービスごとのメモリ消費量の推移をプロットしたグラフを掲載している。

  • Windowsサービスごとのメモリー消費量の推移 出典:Niff_Naff氏のRedditへの投稿

    Windowsサービスごとのメモリ消費量の推移 出典:Niff_Naff氏のRedditへの投稿

DoSvcサービスのメモリ消費量だけが右肩上がりに上昇し続けていることがわかる。一般的に正常なプログラムが1時間以上に渡って緩やかにメモリーを消費し続けることはないことから、何かしらのバグを抱えているとみられる。

回避策はサービスの停止

問題を指摘したNiff_Naff氏は投稿の返信の中で回避策を提案している。原因はわからないと前置きをしつつ、サービスの停止が有効と説明している。

サービスの停止はWindowsツールの「サービス」またはタスクマネージャーなどから調整可能。前者はスタートメニューの検索ボックスに「サービス」と入力することで見つけることができる。

サービスツールを使用する場合は、一覧から「Delivery Optimization」を見つけ出してダブルクリックする。プロパティダイアログが表示されるので、「サービスの状態」の下に表示されている「停止」ボタンをクリックする。なお、サービスの自動起動を止めたい場合は、「スタートアップの種類」を「手動」にするとよい。

タスクマネージャーから調整する場合は、始めにナビゲーションバーから「サービス」を選択する。右側にサービスの一覧が表示されるので、「DoSvc」を選択して右クリックする。コンテキストメニューが表示されるので、「停止」をクリックする。

サービスを停止するとホストプロセスが終了し、確保されていたメモリーも解放されるはずだ。筆者環境では本件不具合を確認できていないが、影響を受けたユーザーはこれら回避策を試すことができる。

Windowsサービスのメモリーークは過去にも複数の報告がある。Microsoftはそのたびに修正を繰り返しているが、同社にはデグレードを回避する開発体制の構築が求められている。