Macの動作が遅くなる原因は、ほぼ確実に1つ以上のプロセスがリソース(CPUサイクル、RAM、ディスクI/O)を過剰に消費していることにあります。解決策はシンプルに聞こえます。問題のプロセスを見つけて終了させればいい。しかし、どのプロセスを終了すべきか、そもそも終了させるのが正しい対処なのかという点で、多くのガイドは不十分です。この記事では、キーボードショートカットから高度な診断ツールまで、macOSで利用できるすべての方法を解説し、Macを本来の速度に戻す手順を紹介します。
結論から言うと
- フリーズしたアプリを最速で終了する方法: Cmd + Option + Escを押して「アプリケーションの強制終了」を開き、アプリを選択して「強制終了」をクリック。
- CPU/RAMを最も使っているプロセスを見つける: Activity Monitor(アプリケーション → ユーティリティ)を開き、CPUまたはメモリで並べ替え。
- ターミナルからプロセスを終了:
kill <PID>を実行。応答しないプロセスにはkill -9 <PID>を使用。名前で終了するにはkillall <名前>。 - リアルタイムチャートで詳細に診断: ProcXrayを使えば、CPU、メモリ、ディスクI/Oを同時に監視し、完全なプロセスツリーを表示し、Activity Monitorが見逃す短命プロセスも捕捉できます。
なぜMacが重くなるのか?
macOSは常に数百のプロセスを管理しています。システムデーモン、バックグラウンドエージェント、ユーザーアプリケーションが3つの主要リソースを奪い合います:
- CPU — プロセスがCPUコアを独占すると、他のすべてが遅くなります。よくある原因は、暴走したブラウザタブ、ビルドツール、
mds_stores(Spotlight)のようなインデックスサービスです。 - メモリ(RAM) — macOSはメモリ圧縮とスワップで負荷を処理しますが、スワップ活動が増えるとディスクI/Oが急増し、システム全体がもたつきます。Appleのメモリ使用パフォーマンスガイドラインによると、macOSは物理RAMが不足するとメモリページの圧縮を開始し、最後の手段としてのみディスクにスワップします。スワップが始まるのが、まさに体感で遅くなるタイミングです。
- ディスクI/O — 大量のデータを読み書きしているプロセス(Time Machineバックアップ、Xcodeインデックス作成、データベースエンジン)がストレージの帯域幅を飽和させ、CPUとRAMに問題がなくてもアプリがレインボーカーソルになることがあります。
Macの動作を改善するには、どのリソースがボトルネックで、どのプロセスが原因なのかを特定することが鍵です。
方法1:キーボードショートカットで強制終了
macOSで不具合のあるアプリを最速で終了する方法:
- Cmd + Option + Esc(⌘ + ⌥ + Esc)を押す。
- 応答しないアプリケーションをリストから選択。
- 強制終了をクリック。
制限事項
- ユーザー向けアプリケーションのみ表示。バックグラウンドプロセスやデーモンは表示されません。
- リソース使用量の情報がないため、どのアプリが問題なのか推測するしかありません。
- システムプロセスやroot所有のプロセスは終了できません。
この方法は、特定のアプリが明らかにフリーズしていて、どれが原因かすでにわかっている場合に最適です。
方法2:Activity Monitor
Activity MonitorはApple標準のプロセス管理ツールです。基本的なリソースメトリクスとともにすべての実行中プロセスを表示します。
プロセスの検索と終了方法
- Activity Monitorを開く(Cmd + Spaceを押し、「Activity Monitor」と入力してEnter)。
- CPUタブをクリックし、% CPUを降順で並べ替えて最も負荷の高いプロセスを見つける。
- プロセスを選択し、ツールバーのXボタン(停止)をクリック。
- まず終了を選択。プロセスが停止しない場合は強制終了をクリック。
メモリプレッシャーの確認
メモリタブに切り替えます。下部のメモリプレッシャーグラフが実態を示しています:
- 緑 — 十分な空きメモリ。遅さの原因はCPUかディスクの可能性が高い。
- 黄 — メモリに負荷がかかっている。macOSがページを圧縮中。パフォーマンスが低下する可能性あり。
- 赤 — 深刻なメモリプレッシャー。システムがディスクにスワップ中。大きなアプリケーションを直ちに終了またはクローズしてください。
ディスクアクティビティの確認
ディスクタブに切り替えると、どのプロセスが最も多くのデータを読み書きしているか確認できます。書き込みバイト数で並べ替えて、SSDに負荷をかけているプロセスを特定しましょう。
制限事項
- プロセスツリー表示がない — 親子関係が見えないため、子プロセスを終了しても親が新しい子プロセスを生成し続けることがあります。
- 短命プロセスのキャプチャがない — 1秒未満で生成・リソース消費・終了するプロセスは表示されません。
- プロセスごとのリアルタイムトレンドチャートがない — スナップショットは見られますが、トレンドは見られません。
- 環境変数やコマンドライン引数の検査機能がない。
方法3:ターミナルコマンド
ターミナルではプロセスに対して正確でスクリプト化可能な制御ができます。
リソース消費の多いプロセスを見つける
# CPU使用率順にトッププロセスを表示(リアルタイム更新)
top -o cpu
# すべてのプロセスのCPUとメモリの一括スナップショット
ps aux --sort=-%cpu | head -20
PIDでプロセスを終了
# 正常終了(SIGTERM)— プロセスにクリーンアップの機会を与える
kill 12345
# 強制終了(SIGKILL)— 即座に終了、クリーンアップなし
kill -9 12345
名前でプロセスを終了
# 名前に一致するすべてのプロセスを終了
killall Safari
# 名前で強制終了
killall -9 node
過剰なディスクI/Oを使用しているプロセスを見つける
# プロセスごとのディスクI/Oをリアルタイム監視(sudo必要)
sudo iotop
# 代替:fs_usageでファイルシステムコールをトレース
sudo fs_usage -f filesys | head -100
制限事項
topとpsはスナップショットを表示するだけで、時間経過に伴うトレンドは追跡しません。iotopはsudoが必要で、出力の解析が難しい場合があります。- ビジュアルなプロセスツリーがない —
pstreeやps -axjfをチェーンして手動で関係を追跡する必要があります。 - リフレッシュ間隔の間に短命プロセスを見逃しやすい。
- 間違ったPIDを終了すると、重要なシステムサービスがクラッシュする可能性があります。
方法4:ProcXray — 詳細なプロセス診断
明らかな暴走アプリが原因でない場合のMacの遅さには、より深い可視性が必要です。ProcXrayは、CPU、メモリ、ディスクI/Oのリアルタイム監視を単一のインターフェースで提供し、Activity Monitorやターミナルを超えるツールを備えています。
リアルタイムパフォーマンスチャート
ProcXrayのサイドバーには、CPU使用率、メモリプレッシャー、ディスクI/Oがライブ更新チャートとして同時に表示されます。Activity Monitorのスナップショット表示とは異なり、これらのチャートは連続的なトレンドを示すため、メモリ使用量がじわじわ増加しているプロセス(メモリリークの可能性)や、定期的にディスク書き込みが急増するプロセス(スケジュールされたバックアップやインデックスジョブ)を簡単に発見できます。
疑わしいプロセスをピン留めして、個々のリソーストレンドを時間経過とともに監視できます。Activity Monitorを開いた瞬間に消える間欠的な遅延の診断には、これが不可欠です。
プロセスツリー表示
ツリー表示に切り替えると、完全な親子階層が表示されます。これが重要な理由:
xcodebuildのようなビルドツールは数十の子プロセス(clang、ld、swift-frontend)を生成し、それらが集合的にCPUを飽和させることがあります。Activity Monitorではそれらが関係のない別々のエントリとして表示されます。- 暴走したシェルスクリプトが際限なく子プロセスをフォークすることがあります。子プロセスを終了しても無意味で、親を終了する必要があります。
- ブラウザプロセス(Chrome、Electronアプリ)はタブごとに1つのプロセスを生成します。ツリー表示で、どのタブや拡張機能が原因かが正確にわかります。
短命プロセスの捕捉
ProcXrayは新しく生成されたプロセスを緑色で、最近終了したプロセスを赤色でハイライトし、終了後も表示を維持します。これにより、コンパイラ呼び出し、シェルヘルパー、cronジョブなど、大量のリソースを消費しながらもActivity Monitorに表示される前に終了してしまう短命プロセスを捕捉できます。
スマートプロセス管理
任意のプロセスを右クリックしてコンテキストアクションを実行:
- Terminate — 正常終了(SIGTERM)。
kill <PID>と同等。 - Suspend — プロセスを終了せずに凍結(SIGSTOP)。リソースを大量に消費するプロセスを一時停止し、後で再開したい場合に便利。
- HUP/QUITシグナルの送信 — 設定のリロードやデバッグ用のコアダンプをトリガー。
- Finderに表示 — 実行ファイルに直接移動して、プロセスの正体を確認。
- コマンドラインをコピー — プロセスが起動時に使用した正確な引数を確認。
ディスクI/Oボトルネックの診断
任意のプロセスのConnectionsタブを開くと、すべてのオープンファイルディスクリプタ(プロセスが読み書き用に開いているすべてのファイル)を確認できます。プロセスが数百のファイルを開いている場合、それがディスクI/Oボトルネックの原因である可能性が高いです。これはlsof -p <PID>の実行と同等ですが、構造化されたフィルタリング可能なインターフェースで表示されます。
環境変数の検査
Macの動作が遅い原因が設定ミスにある場合もあります。バックグラウンドプロセスがデバッグモードで動作していたり、ビルドツールが冗長ログを有効にしていたり、アプリが巨大なプラグインディレクトリを読み込んでいたりすることがあります。ProcXrayのEnvironmentタブには、プロセスが継承したすべての環境変数が表示され、ワンクリックでJSONとしてエクスポートして詳細な分析に活用できます。
Macの遅さを体系的に修正する方法
やみくもにプロセスを終了するのではなく、以下の診断ワークフローに従いましょう:
ステップ1:ボトルネックを特定する
| 症状 | 考えられるボトルネック | 確認すべき項目 |
|---|---|---|
| ファンが回り、アプリがもたつく | CPU | CPU使用率で並べ替え — 100%を超えるプロセスを探す |
| アプリの切り替えが遅い、レインボーカーソル | メモリ | メモリプレッシャーを確認 — 黄色/赤は問題あり |
| ファイル保存が遅い、アプリが一時的にフリーズ | ディスクI/O | プロセスごとのディスク読み書き速度を確認 |
| すべてが遅い | 複合要因 | 3つすべてを確認 — 連鎖反応の場合が多い |
ステップ2:原因を特定する
- CPUの場合: CPU使用率100%以上のプロセスを探す(マルチコアMacでは、1つのプロセスが200%、400%などを使用可能)。よくある原因:
mds_stores、kernel_task、WindowServer、ブラウザレンダラープロセス。 - メモリの場合: メモリフットプリントで並べ替え。合計メモリ使用量が物理RAMを超えていないか確認。メモリが増え続けているアプリを探す(メモリリークの可能性)。
- ディスクI/Oの場合: 書き込みバイト数の多いプロセスを探す。オープンファイルディスクリプタ数を確認。よくある原因:
backupd(Time Machine)、mds(Spotlight)、bird(iCloud同期)。
ステップ3:終了するか、一時停止するか、調査するか?
| 状況 | 対処 |
|---|---|
| 応答しないフリーズしたアプリ | 強制終了(Cmd + Option + Escまたはkill -9) |
| バックグラウンドプロセスが一時的に大量のCPUを使用 | 一時停止し、タスクが完了したら再開 |
| 見覚えのないプロセス | まず調査 — コード署名、実行ファイルのパス、親プロセスを確認してから終了 |
システムプロセス(kernel_task、WindowServer) | 終了しないこと — 根本原因を調査(多くの場合、サーマルスロットリングや周辺機器の問題) |
| 親プロセスがリソース消費の多い子プロセスを生成し続けている | 子ではなく親を終了する |
比較:Macのプロセス終了方法
| 機能 | 強制終了(⌘⌥⎋) | Activity Monitor | ターミナル | ProcXray |
|---|---|---|---|---|
| ユーザーアプリの終了 | 可 | 可 | 可 | 可 |
| バックグラウンドプロセスの終了 | 不可 | 可 | 可 | 可 |
| CPU/メモリ/ディスクI/O表示 | 不可 | 別タブ | top/iotop | 同時表示 |
| プロセスツリー表示 | 不可 | 不可 | 限定的 | 可 |
| 短命プロセスの捕捉 | 不可 | 不可 | 不可 | 可 |
| プロセスの一時停止と再開 | 不可 | 不可 | kill -STOP | 右クリック |
| 環境変数の検査 | 不可 | 不可 | macOSに/procはない | 可 |
| コード署名の検証 | 不可 | 不可 | codesign CLI | 可 |
| 正規表現プロセス検索 | 不可 | テキストフィルタ | grep | 組み込み |
よくある質問
Activity Monitorで低いCPU使用率が表示されているのに、Macが遅いのはなぜ?
ボトルネックがCPUではない可能性があります。メモリプレッシャー(黄色や赤はシステムがディスクにスワップしていることを意味)とディスクI/O(SSDを飽和させているプロセス)を確認してください。また、CPUを瞬間的に急増させて終了する短命プロセスは、Activity Monitorのリフレッシュサイクルに表示されません。ProcXrayはこれらの一時的なプロセスを捕捉し、終了後も表示します。
Macでプロセスを強制終了しても安全ですか?
強制終了(kill -9または強制終了)はSIGKILLを送信し、プロセスにデータの保存やクリーンアップの機会を与えずに即座に終了させます。ブラウザやエディタなどのユーザーアプリの場合、未保存の作業を失う可能性があります。システムプロセスの場合、強制終了は不安定性を引き起こす可能性があります。まず正常終了(kill <PID>またはQuitコマンドによるSIGTERM)を試み、プロセスが完全に応答しない場合のみ強制終了してください。
kernel_taskのCPU使用率が高いのを止めるには?
kernel_taskは、マシンが過熱した際にmacOSがCPUをスロットリングするための仕組みです。終了させることはできませんし、すべきでもありません。代わりに根本原因に対処しましょう:サーマル問題を引き起こしている可能性のある周辺機器を取り外す、通気口がふさがれていないか確認する、SMCをリセットする(Intel Mac)、センサーの故障を確認する。Appleのサポート記事HT207359に詳しい解説があります。
macOSでの「終了」「強制終了」「Kill」の違いは?
- 終了(Cmd + Q)— 丁寧な終了リクエストを送信。アプリは閉じる前にファイル保存のプロンプトを表示できます。
- 強制終了(Cmd + Option + Esc)— SIGTERMを送信。アプリは終了すべきですが、拒否することもできます。
- Kill(
kill -9)— SIGKILLを送信。OSがプロセスを即座に終了します。プロセスはこのシグナルをキャッチ、ブロック、無視することができません。
ディスクI/Oをすべて使っているプロセスを見つけるには?
Activity Monitorでディスクタブに切り替えて書き込みバイト数で並べ替えます。ターミナルではsudo iotopでプロセスごとのリアルタイムディスクI/Oを監視できます。ProcXrayではサイドバーにディスクI/Oチャートがリアルタイム表示され、Connectionsタブで任意のプロセスのオープンファイルディスクリプタを検査して、読み書きしているファイルを正確に確認できます。
プロセスとそのすべての子プロセスを一度に終了できますか?
ターミナルではkill -- -<PGID>を使ってプロセスグループ全体を終了できますが、PGIDの取得には追加のコマンドが必要です。ProcXrayのツリー表示では完全な階層が表示されるため、親を右クリックして終了すれば、行儀の良いプロセスの場合はmacOSが孤立した子プロセスを自動的にクリーンアップします。
参考資料
- Apple — Memory Usage Performance Guidelines
- Apple Support — If kernel_task uses a large percentage of Mac CPU
- Apple Support — How to use Activity Monitor
killcommand reference- macOS Process Monitoring Guide
- ProcXray vs Activity Monitor: Full Comparison
ProcXrayをダウンロード → — 14日間無料トライアル、macOS Sonoma以降対応、Apple Silicon & Intel。