ブログに戻る

Macが重い?リソースを食うプロセスを見つけて終了させる方法

Macの動作が遅い原因を段階的に診断するガイド。CPU・メモリ・ディスクI/Oを圧迫しているプロセスを特定し、適切なツールで終了・管理する方法を解説します。

Macの動作が遅くなる原因は、ほぼ確実に1つ以上のプロセスがリソース(CPUサイクル、RAM、ディスクI/O)を過剰に消費していることにあります。解決策はシンプルに聞こえます。問題のプロセスを見つけて終了させればいい。しかし、どのプロセスを終了すべきか、そもそも終了させるのが正しい対処なのかという点で、多くのガイドは不十分です。この記事では、キーボードショートカットから高度な診断ツールまで、macOSで利用できるすべての方法を解説し、Macを本来の速度に戻す手順を紹介します。

結論から言うと

なぜMacが重くなるのか?

macOSは常に数百のプロセスを管理しています。システムデーモン、バックグラウンドエージェント、ユーザーアプリケーションが3つの主要リソースを奪い合います:

  1. CPU — プロセスがCPUコアを独占すると、他のすべてが遅くなります。よくある原因は、暴走したブラウザタブ、ビルドツール、mds_stores(Spotlight)のようなインデックスサービスです。
  2. メモリ(RAM) — macOSはメモリ圧縮とスワップで負荷を処理しますが、スワップ活動が増えるとディスクI/Oが急増し、システム全体がもたつきます。Appleのメモリ使用パフォーマンスガイドラインによると、macOSは物理RAMが不足するとメモリページの圧縮を開始し、最後の手段としてのみディスクにスワップします。スワップが始まるのが、まさに体感で遅くなるタイミングです。
  3. ディスクI/O — 大量のデータを読み書きしているプロセス(Time Machineバックアップ、Xcodeインデックス作成、データベースエンジン)がストレージの帯域幅を飽和させ、CPUとRAMに問題がなくてもアプリがレインボーカーソルになることがあります。

Macの動作を改善するには、どのリソースがボトルネックで、どのプロセスが原因なのかを特定することが鍵です。

方法1:キーボードショートカットで強制終了

macOSで不具合のあるアプリを最速で終了する方法:

  1. Cmd + Option + Esc(⌘ + ⌥ + Esc)を押す。
  2. 応答しないアプリケーションをリストから選択。
  3. 強制終了をクリック。

制限事項

この方法は、特定のアプリが明らかにフリーズしていて、どれが原因かすでにわかっている場合に最適です。

方法2:Activity Monitor

Activity MonitorはApple標準のプロセス管理ツールです。基本的なリソースメトリクスとともにすべての実行中プロセスを表示します。

プロセスの検索と終了方法

  1. Activity Monitorを開く(Cmd + Spaceを押し、「Activity Monitor」と入力してEnter)。
  2. CPUタブをクリックし、% CPUを降順で並べ替えて最も負荷の高いプロセスを見つける。
  3. プロセスを選択し、ツールバーのXボタン(停止)をクリック。
  4. まず終了を選択。プロセスが停止しない場合は強制終了をクリック。

メモリプレッシャーの確認

メモリタブに切り替えます。下部のメモリプレッシャーグラフが実態を示しています:

ディスクアクティビティの確認

ディスクタブに切り替えると、どのプロセスが最も多くのデータを読み書きしているか確認できます。書き込みバイト数で並べ替えて、SSDに負荷をかけているプロセスを特定しましょう。

制限事項

方法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

制限事項

方法4:ProcXray — 詳細なプロセス診断

明らかな暴走アプリが原因でない場合のMacの遅さには、より深い可視性が必要です。ProcXrayは、CPU、メモリ、ディスクI/Oのリアルタイム監視を単一のインターフェースで提供し、Activity Monitorやターミナルを超えるツールを備えています。

リアルタイムパフォーマンスチャート

ProcXrayのサイドバーには、CPU使用率、メモリプレッシャー、ディスクI/Oがライブ更新チャートとして同時に表示されます。Activity Monitorのスナップショット表示とは異なり、これらのチャートは連続的なトレンドを示すため、メモリ使用量がじわじわ増加しているプロセス(メモリリークの可能性)や、定期的にディスク書き込みが急増するプロセス(スケジュールされたバックアップやインデックスジョブ)を簡単に発見できます。

疑わしいプロセスをピン留めして、個々のリソーストレンドを時間経過とともに監視できます。Activity Monitorを開いた瞬間に消える間欠的な遅延の診断には、これが不可欠です。

プロセスツリー表示

ツリー表示に切り替えると、完全な親子階層が表示されます。これが重要な理由:

短命プロセスの捕捉

ProcXrayは新しく生成されたプロセスを緑色で、最近終了したプロセスを赤色でハイライトし、終了後も表示を維持します。これにより、コンパイラ呼び出し、シェルヘルパー、cronジョブなど、大量のリソースを消費しながらもActivity Monitorに表示される前に終了してしまう短命プロセスを捕捉できます。

スマートプロセス管理

任意のプロセスを右クリックしてコンテキストアクションを実行:

ディスクI/Oボトルネックの診断

任意のプロセスのConnectionsタブを開くと、すべてのオープンファイルディスクリプタ(プロセスが読み書き用に開いているすべてのファイル)を確認できます。プロセスが数百のファイルを開いている場合、それがディスクI/Oボトルネックの原因である可能性が高いです。これはlsof -p <PID>の実行と同等ですが、構造化されたフィルタリング可能なインターフェースで表示されます。

環境変数の検査

Macの動作が遅い原因が設定ミスにある場合もあります。バックグラウンドプロセスがデバッグモードで動作していたり、ビルドツールが冗長ログを有効にしていたり、アプリが巨大なプラグインディレクトリを読み込んでいたりすることがあります。ProcXrayのEnvironmentタブには、プロセスが継承したすべての環境変数が表示され、ワンクリックでJSONとしてエクスポートして詳細な分析に活用できます。

Macの遅さを体系的に修正する方法

やみくもにプロセスを終了するのではなく、以下の診断ワークフローに従いましょう:

ステップ1:ボトルネックを特定する

症状考えられるボトルネック確認すべき項目
ファンが回り、アプリがもたつくCPUCPU使用率で並べ替え — 100%を超えるプロセスを探す
アプリの切り替えが遅い、レインボーカーソルメモリメモリプレッシャーを確認 — 黄色/赤は問題あり
ファイル保存が遅い、アプリが一時的にフリーズディスクI/Oプロセスごとのディスク読み書き速度を確認
すべてが遅い複合要因3つすべてを確認 — 連鎖反応の場合が多い

ステップ2:原因を特定する

ステップ3:終了するか、一時停止するか、調査するか?

状況対処
応答しないフリーズしたアプリ強制終了(Cmd + Option + Escまたはkill -9
バックグラウンドプロセスが一時的に大量のCPUを使用一時停止し、タスクが完了したら再開
見覚えのないプロセスまず調査 — コード署名、実行ファイルのパス、親プロセスを確認してから終了
システムプロセス(kernel_taskWindowServer終了しないこと — 根本原因を調査(多くの場合、サーマルスロットリングや周辺機器の問題)
親プロセスがリソース消費の多い子プロセスを生成し続けている子ではなく親を終了する

比較: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」の違いは?

ディスクI/Oをすべて使っているプロセスを見つけるには?

Activity Monitorでディスクタブに切り替えて書き込みバイト数で並べ替えます。ターミナルではsudo iotopでプロセスごとのリアルタイムディスクI/Oを監視できます。ProcXrayではサイドバーにディスクI/Oチャートがリアルタイム表示され、Connectionsタブで任意のプロセスのオープンファイルディスクリプタを検査して、読み書きしているファイルを正確に確認できます。

プロセスとそのすべての子プロセスを一度に終了できますか?

ターミナルではkill -- -<PGID>を使ってプロセスグループ全体を終了できますが、PGIDの取得には追加のコマンドが必要です。ProcXrayのツリー表示では完全な階層が表示されるため、親を右クリックして終了すれば、行儀の良いプロセスの場合はmacOSが孤立した子プロセスを自動的にクリーンアップします。

参考資料


ProcXrayをダウンロード → — 14日間無料トライアル、macOS Sonoma以降対応、Apple Silicon & Intel。