# Mac で mDNSResponder の CPU 使用率が高いのはなぜ？

> mDNSResponder はすべてのアプリの DNS と Bonjour を処理します。忙しくさせている原因の探し方、DNS キャッシュの安全なフラッシュ、本物かどうかの確認方法を説明します。

Published: 2026-11-09

mDNSResponder は、すべてのアプリの DNS 検索に応答し、Bonjour を通じてローカルネットワーク上の機器を見つける macOS のプロセスです。システムの正常な一部で、`/usr/sbin/mDNSResponder` から専用の `_mdnsresponder` アカウントで動作し、問題のない Mac では CPU 使用率がほぼ 0% のままです。高いまま続くときは、たいていブラウザ、VPN、混み合ったネットワークなど別の何かのために働いているので、プロセスを止めるのではなく、その原因を探すのが対処になります。

## 何をしているのか

マニュアルページ（`man mDNSResponder`）では、Multicast DNS と DNS Service Discovery を実装し、ほかのプロセスに代わって DNS 問い合わせを行い、その答えをキャッシュするデーモンと説明されています。アクティビティモニタやネットワーク系のツールでこの名前をよく見かけるのはそのためで、アプリがアドレスを尋ねるとき、実際に尋ねているのがこのプロセスです。

もう一つ、`mDNSResponderHelper` というプロセスが root 権限で並んで動いています。このページに使った Mac では、アイドル中は次のように見えました。

```text
_mdnsresponder  0.0% CPU  /usr/sbin/mDNSResponder
root            0.0% CPU  /usr/sbin/mDNSResponderHelper
```

## 原因を探す

アクティビティモニタを開いて **CPU** タブで `mDNSResponder` を 1 分ほど見てください。短いスパイクは正常です。高いまま続くなら、一度に一つずつ変えて確かめます。

1. 多くの接続を開くブラウザやアプリを終了し、1 分以内に数値が下がるか確認します。
2. VPN、プロキシ、DNS フィルタがあればオフにします。これらはすべての名前解決の経路を変えるためです。
3. スマートフォンのテザリングなど、別のネットワークに接続します。負荷が消えるなら、原因は元のネットワークにあります。
4. ネットワークが何を告知しているかは、次のコマンドを数秒実行し、`Ctrl + C` で止めると見られます。

```bash
dns-sd -B _services._dns-sd._udp local
```

長くて絶えず入れ替わるリストが出るなら、Bonjour 機器が多いネットワークです。

| 見えるもの | 考えられる原因 | 試すこと |
| --- | --- | --- |
| ブラウザやアプリを開いたときのスパイク | 通常の名前解決 | 何もしない |
| VPN やプロキシをオンにしたときだけ CPU が高い | その DNS 設定やフィルタ | 更新するか、DNS 設定を確認する |
| 特定のネットワークでだけ CPU が高い | Bonjour 機器が多い、または不調 | 別のネットワークで試し、ルーターや疑わしい機器を再起動する |
| サイトが開かない、または古いアドレスが出る | 古い、または誤った DNS の応答 | [DNS キャッシュをフラッシュする](https://mole.fit/ja/blog/how-to-flush-dns-cache-mac) |
| この名前でデータ使用量が多い | 名前解決とローカル探索 | [どのアプリがネットワークを使っているか](https://mole.fit/ja/blog/what-app-is-using-my-network-mac)を見る |

## 再起動しても安全か

DNS キャッシュのフラッシュはプロセスにシグナルを送る操作で、キャッシュを消す正式な方法です。

```bash
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
```

一瞬で終わり、パスワードが必要です。Mac を再起動しても同じ効果があります。フラッシュが効くのは誤った応答や古い応答のときだけなので、アプリが問い合わせ続けているせいで忙しいなら、負荷は戻ってきます。

## マルウェアではないか

本物のファイルはシステムボリュームの `/usr/sbin/mDNSResponder` にあり、macOS は `/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist` から起動します。実行中のものを確かめるには、アクティビティモニタのインスペクタでパスを見るか、次を実行します。

```bash
ps -axo user,pid,args | grep '[m]DNSResponder'
```

ホームフォルダや `/tmp` など、別のフォルダから動いている同名のプロセスは疑ってください。パスが正しいことは有力な証拠ですが、どのアプリが問い合わせを起こしているかまでは分かりません。

## やってはいけないこと

- 無効化しようとしないでください。この起動デーモンはシステム整合性保護で守られており、このプロセスがないと Mac 全体で名前解決が止まります。
- `-HUP` の代わりに `kill -9` を使わないでください。Apple のアーカイブされたサポート記事が挙げているのは `-HUP` の形です。
- データ使用量の多さをダウンロードと考えないでください。通信は名前解決と探索で、ほかのアプリの動作が原因です。
- これを理由に「ネットワークブースター」や DNS クリーナーを入れないでください。どちらも、何が問い合わせているかは教えてくれません。

## Mole でできること

[Mole](https://mole.fit/ja/) の **ステータス** では、`mDNSResponder` が忙しいときに CPU とメモリが一覧に出ます。忙しくないときも、表の検索で見つかります。メニューの **なぜ実行中？** では、実行ファイルと起動元が分かります。macOS はこのシステムアカウントのポートを Mole に読ませないため、ポートの一覧は出ません。システムのネットワークサービスなので、Mole には止める手段もありません。Mole Mac は DNS キャッシュをフラッシュせず、DNS やネットワーク設定も変えないので、それには上のターミナルのコマンドを使ってください。メニューバーのネットワーク速度をクリックして開く、アプリごとの **ネットワーク** リストにも表示され、名前解決とアプリ本来の通信を見分けるのに役立ちます。

## よくある質問

### Mac の mDNSResponder とは何ですか？

アプリのために DNS 検索を行い、Bonjour を通じてローカルネットワーク上の機器を見つけるシステムプロセスです。`/usr/sbin/mDNSResponder` から動作します。

### mDNSResponder の CPU 使用率が高いのはなぜですか？

たいていは、アプリ、VPN や DNS フィルタ、混み合ったネットワークなど、何かが大量の名前解決や探索をさせています。一つずつ変えながら数値を見てください。

### mDNSResponder を終了または無効化できますか？

無効化しないでください。Mac 全体の名前解決がこれに依存しています。誤った応答を消したいときは、`-HUP` のコマンドで DNS キャッシュをフラッシュします。

### mDNSResponder はウイルスですか？

本物は `/usr/sbin` から動き、システムの起動デーモンから始まります。ほかのフォルダから動くコピーは、よく調べる価値があります。

### mDNSResponder がネットワークへのアクセスを求めたりデータを使ったりするのはなぜですか？

役割がネットワークの名前解決とローカル探索なので、常にネットワークを使います。データ量はほかのアプリの要求を反映したもので、通常は小さい値です。

---

Canonical HTML page: https://mole.fit/ja/blog/mdnsresponder-high-cpu-mac
Blog index for agents: https://mole.fit/ja/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
