# Windows で Runtime Broker の CPU・メモリ使用率が高い原因

Runtime Brokerは通常のWindowsプロセス`RuntimeBroker.exe`で、ストア形式のアプリと、位置情報やマイクのようにアプリが使いたがるWindowsの機能との間に入ります。ふだんはCPUをほとんど使わず、メモリも控えめで待機しています。どちらかが大きいときは、ほぼ必ず1つのパッケージ化されたアプリが何かを求め続けているので、そのアプリを見つけるのが解決策です。Runtime Brokerを終了しても、数分稼げるだけです。

## 正常なPCではどう見えるか

Microsoftはこのプロセスについてあまり公開していないため、ここではWindows 11のPCで実際に見えたものを示します。テスト用のThinkPadでは3つのコピーが動いていて、どれも次のような状態でした。

```text
C:\Windows\System32\RuntimeBroker.exe -Embedding
Started by: C:\Windows\system32\svchost.exe -k DcomLaunch -p
```

アプリごとに専用のコピーが付くので、複数あるのは普通です。数は違っても、パスと親プロセスは同じになるはずです。自分のPCのものは次で一覧にできます。

```powershell
Get-CimInstance Win32_Process | Where-Object Name -eq 'RuntimeBroker.exe' | Select-Object ProcessId, ExecutablePath, CommandLine
```

## 背後にあるアプリを見つける

各コピーの背後のアプリ名を示す列はWindowsにないので、絞り込むのが現実的です。

1. `Ctrl + Shift + Esc`でタスク マネージャーを開き、**プロセス**を**CPU**か**メモリ**で並べ替えます。
2. フォト、スマートフォン連携、ウィジェット、Teams、メール、Microsoft Storeのアプリなど、パッケージ化されたアプリを1つずつ閉じ、1分以内に数値が下がるか見ます。
3. 下がるなら、そのアプリを更新するか、**設定 › アプリ › インストールされているアプリ › （そのアプリ） › 詳細オプション**でリセットします。同じページの**終了**を押すと、そのアプリのバックグラウンド プロセスが止まります。
4. 何も変わらなければ再起動して、数値がまた上がるときにどのアプリが開いていたかを見ます。

同じ**詳細オプション**のページでは、オプションが表示される場合に、バックグラウンドで動かす必要のないアプリの**バックグラウンド アプリのアクセス許可**を**しない**に設定できます。

| 見えるもの | 通常の意味 | 試すこと |
| --- | --- | --- |
| アプリを開いた直後、一瞬だけ数パーセントの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使用率が高いとき](/ja/windows/blog/windows-high-cpu-usage)、[Windowsでメモリ使用率が高いとき](/ja/windows/blog/windows-high-memory-usage)、[ストア自身のプロセスwsappx](/ja/windows/blog/wsappx-high-cpu-windows)を参照してください。

## よくある質問

### Runtime Brokerとは？

Microsoft Storeのようなパッケージ化されたアプリの代わりに動き、位置情報やマイクなどの要求を扱うWindowsのプロセスです。ファイルは`C:\Windows\System32\RuntimeBroker.exe`です。

### Runtime Brokerのメモリ使用量が多いのはなぜ？

たいていは、担当しているアプリが何かを求め続けているか、長く動いているコピーでメモリがリークしています。簡単なテストとしては、そのコピーを終了しても十分に安全です。また増えるなら、パッケージ化されたアプリを1つずつ閉じて、どれが原因か探してください。

### Runtime Brokerを終了してもいい？

止まった1つのコピーならかまいませんが、担当するアプリが閉じたり誤動作したりするかもしれず、必要になればWindowsが新しいコピーを起動します。修正ではなくテストです。

### Runtime Brokerを無効にできる？

しないでください。ストアアプリがこれを必要とします。無効にすると称するレジストリ編集は、壊れたアプリを残し、元の原因もそのままです。

### Runtime Brokerのプロセスが複数あるのはなぜ？

アプリごとに専用のコピーが付くので、複数同時にあるのは普通です。このページを確認したとき、アイドル状態のテスト用ノートPCでも3つ動いていました。


Canonical: https://mole.fit/ja/windows/blog/runtime-broker-high-cpu-memory
