Windows で Runtime Broker の CPU・メモリ使用率が高い原因
Runtime Brokerは通常のWindowsプロセスRuntimeBroker.exeで、ストア形式のアプリと、位置情報やマイクのようにアプリが使いたがるWindowsの機能との間に入ります。ふだんはCPUをほとんど使わず、メモリも控えめで待機しています。どちらかが大きいときは、ほぼ必ず1つのパッケージ化されたアプリが何かを求め続けているので、そのアプリを見つけるのが解決策です。Runtime Brokerを終了しても、数分稼げるだけです。
正常なPCではどう見えるか
Microsoftはこのプロセスについてあまり公開していないため、ここではWindows 11のPCで実際に見えたものを示します。テスト用のThinkPadでは3つのコピーが動いていて、どれも次のような状態でした。
C:\Windows\System32\RuntimeBroker.exe -Embedding
Started by: C:\Windows\system32\svchost.exe -k DcomLaunch -p
アプリごとに専用のコピーが付くので、複数あるのは普通です。数は違っても、パスと親プロセスは同じになるはずです。自分のPCのものは次で一覧にできます。
Get-CimInstance Win32_Process | Where-Object Name -eq 'RuntimeBroker.exe' | Select-Object ProcessId, ExecutablePath, CommandLine
背後にあるアプリを見つける
各コピーの背後のアプリ名を示す列はWindowsにないので、絞り込むのが現実的です。
Ctrl + Shift + Escでタスク マネージャーを開き、プロセスをCPUかメモリで並べ替えます。- フォト、スマートフォン連携、ウィジェット、Teams、メール、Microsoft Storeのアプリなど、パッケージ化されたアプリを1つずつ閉じ、1分以内に数値が下がるか見ます。
- 下がるなら、そのアプリを更新するか、設定 › アプリ › インストールされているアプリ › (そのアプリ) › 詳細オプションでリセットします。同じページの終了を押すと、そのアプリのバックグラウンド プロセスが止まります。
- 何も変わらなければ再起動して、数値がまた上がるときにどのアプリが開いていたかを見ます。
同じ詳細オプションのページでは、オプションが表示される場合に、バックグラウンドで動かす必要のないアプリのバックグラウンド アプリのアクセス許可をしないに設定できます。
| 見えるもの | 通常の意味 | 試すこと |
|---|---|---|
| アプリを開いた直後、一瞬だけ数パーセントのCPU | 通常の権限チェック | 何もしない |
| 1つのアプリを開いている間、CPUが高いまま | そのアプリが繰り返し要求している | 更新、リセット、または削除する |
| 数時間かけてメモリが増え、数GBに達する | コピー、またはそれが担当するアプリでのリーク | そのコピーを終了し、上の方法でアプリを探す |
| アプリを開いていないのにスパイクする | ウィジェット、スタート メニュー、ヒント | 下を参照 |
よく言われる設定
Runtime BrokerのCPU使用率をWindowsのヒントに結び付ける報告は多くあります。上の方法で改善しなければ、設定 › システム › 通知 › 追加の設定 › Windows の使用時にヒントや提案を取得するをオフにしてください。Microsoftはこの関係を文書化しておらず、証明された原因ではなくよくある報告です。試しても損はなく、効いたかどうかは1日で分かります。
ウイルスなのか
本物のファイルはC:\Windows\System32にあり、Microsoftの署名があります。ほかの場所から動いているコピー、名前が少し違うもの、svchost.exe以外が起動したコピーは、Microsoft Defenderでスキャンしてください。パスは上のPowerShellの行で確認できます。
やってはいけないこと
RuntimeBroker.exeを削除したり、所有権を取得してブロックしたりしない。これに頼るアプリが動かなくなり、Windowsは欠けたファイルを破損として扱います。- フォーラムの投稿にあるレジストリ編集で無効化しない。ストアアプリがこれを必要とするうえ、症状は消えても原因のアプリは分からないままです。
- 何度も終了しない。コピーの終了は十分に安全ですが、担当していたアプリが誤動作したり閉じたりするかもしれず、必要になればWindowsがまた起動します。
- これを理由に「RAMクリーナー」を入れない。メモリを一瞬ディスクへ追い出すだけで、ディスクの作業が増えます。
Moleでできること
Mole for WindowsのステータスはRuntime Brokerをセッションごとに1行にまとめるので、アプリを閉じながらCPUとメモリの合計を見られます。行のメニューのなぜ実行中?は、開いた時点の負荷の高いコピーを並べるので、比べるには開き直してください。実行ファイルと起動元も表示されるので、上で述べたパスと親プロセスをすぐに確認できます。Runtime BrokerはWindowsフォルダーから動くため、Moleはシステムとして扱い、終了も強制終了も出しません。Moleはアプリの権限もヒントも管理しません。より広い問題はWindowsでCPU使用率が高いとき、Windowsでメモリ使用率が高いとき、ストア自身のプロセスwsappxを参照してください。
よくある質問
Runtime Brokerとは?
Microsoft Storeのようなパッケージ化されたアプリの代わりに動き、位置情報やマイクなどの要求を扱うWindowsのプロセスです。ファイルはC:\Windows\System32\RuntimeBroker.exeです。
Runtime Brokerのメモリ使用量が多いのはなぜ?
たいていは、担当しているアプリが何かを求め続けているか、長く動いているコピーでメモリがリークしています。簡単なテストとしては、そのコピーを終了しても十分に安全です。また増えるなら、パッケージ化されたアプリを1つずつ閉じて、どれが原因か探してください。
Runtime Brokerを終了してもいい?
止まった1つのコピーならかまいませんが、担当するアプリが閉じたり誤動作したりするかもしれず、必要になればWindowsが新しいコピーを起動します。修正ではなくテストです。
Runtime Brokerを無効にできる?
しないでください。ストアアプリがこれを必要とします。無効にすると称するレジストリ編集は、壊れたアプリを残し、元の原因もそのままです。
Runtime Brokerのプロセスが複数あるのはなぜ?
アプリごとに専用のコピーが付くので、複数同時にあるのは普通です。このページを確認したとき、アイドル状態のテスト用ノートPCでも3つ動いていました。